2012-03-04 29 views
0

LINQ to SQLで動作するクエリがあります。私はそれをLINQ to Entitiesに変換する必要があります。私はそれが私がエラーを取得するあるとしてそれを使用LINQ to Entitiesサブクエリ

(from pr in Products 
join c in Categories on pr.CategoryID equals c.CategoryID 
join b in Colors on pr.ColorID equals b.ColorID 
select new{ 
ProductID = pr.ProductID, 
Manufacturer = pr.Manufacturer.Name, 
Model = v.Model.ModelName, 
Category = c.Name, 
Photos = from p in Photos where pr.ProductID == p.ProductID select p 
}).FirstOrDefault() 

Unable to create a constant value of type Only primitive types ('such as Int32, String, and Guid') are supported in this context.

問題は、この部分にある:あなたのための関連クエリを自動管理し

Photos = from p in Photos where pr.ProductID == p.ProductID select p 

答えて

0

を参照してください、私は最終的に非常にそれを解決しました簡単 - I 2つのメソッドにそのクエリを分割:

GetAllProducts() 
GetAllPhotos() 

と両方のクエリーからすべての特性を有することProductsDTOを通して結果を参加より。

1

LINQのエンティティへ(すべてのキー/リレーションシップが適切に定義されていると仮定します)。

はこれを試してみてください:

(from pr in Products 
select new{ 
ProductID = pr.ProductID, 
Manufacturer = pr.Manufacturer.Name, 
Model = pr.Color.Model.ModelName, 
Category = pr.Category.Name, 
Photos = pr.Photos 
}).FirstOrDefault() 

また、この記事(http://msdn.microsoft.com/en-us/library/bb896321.aspx)

関連する問題