を取得:Entity Frameworkの、タイプとLINQのパー表 - 私は製品と呼ばれる抽象タイプがあり、以下のように、型階層のファッションあたりのテーブルに製品から継承する5「タイプ」「タイプ」
MVC Webページで使用するために新しいクラスにプロジェクトを継承するさまざまなオブジェクトのプロパティを含む、すべてのプロダクトのすべての情報を取得したいとします。私のLINQクエリ以下の通りです:私が持っている問題は、p.pTFi_fixedRateにアクセスしている
//Return the required products
var model = from p in Product.Products
where p.archive == false && ((Prod_ID == 0) || (p.ID == Prod_ID))
select new SearchViewModel
{
ID = p.ID,
lend_name = p.Lender.lend_name,
pDes_rate = p.pDes_rate,
pDes_details = p.pDes_details,
pDes_totTerm = p.pDes_totTerm,
pDes_APR = p.pDes_APR,
pDes_revDesc = p.pDes_revDesc,
pMax_desc = p.pMax_desc,
dDipNeeded = p.dDipNeeded,
dAppNeeded = p.dAppNeeded,
CalcFields = new DAL.SearchCalcFields
{
pDes_type = p.pDes_type,
pDes_rate = p.pDes_rate,
pTFi_fixedRate = p.pTFi_fixedRate
}
}
それは固定のスーパータイプであるとして、これは実体のProductsコレクションに返されません。 LinqとEntity Frameworkを使用して、プロダクト(固定)プロパティの「スーパー」タイプを返すにはどうすればよいですか。私は実際に計算に使用するために、すべての異なるスーパータイプ(ディスク、トラックなど)からいくつかのフィールドを返す必要があります。返される "Product"のタイプをチェックする別々のLinqクエリとしてこれらを返すべきですか?
将来的に誰かがこれを参照すると、以下のようなUnionが動作します。 Linq to Entitiesは複雑なクエリを返す場合、Linqは表現ツリーをナビゲートしてSQLを実際に構築するために永遠にかかるでしょう。私の場合、SQLの実行には1秒(500行)、Linqには3秒がかかりました。私がこれを解決したのは、このリターンのためにTPTを捨てて、ちょうどビューを使用したことでした。 – MagicalArmchair