:LINQ到實體(指定類型的成員'在LINQ不支持對公單位)
這裏是T-SQL查詢我需要使用LINQ到實體實現
select r.ReviewID, b.BusinessID, b.Name as BusinessName ,r.Description
from gb_business.Review r
inner join gb_business.Business b on r.BusinessID = b.BusinessID
inner join gb_listing.RegionalService rs on b.BusinessID = rs.BusinessID
where r.ReviewStatusID=1 and rs.TypeID=1 and rs.IsMain=1
在VS2010它看起來像這樣(不其中子句)
var res1 = (from r in context.Review
join b in context.Business on r.BusinessID equals b.BusinessID
join rs in context.RegionalService on b.BusinessID equals rs.Business.BusinessID
select r).ToList();
該表達式編譯很好,但在運行時間有個例外:LINQ to Entities不支持指定的類型成員'BusinessID'。僅支持初始化程序,實體成員和實體導航屬性。
我想知道爲什麼BusinessID是一個問題。謝謝。
什麼數據類型是'BusinessID'?此外,您的第二次加入鏈接通過關聯。 ('rs.Business.BusinessID',而不是'rs.BusinessID',因爲我會預期的。) – GalacticCowboy 2012-04-11 17:52:22
它是int所有3個表,是Business和RegionalService通過BusinessID連接成一對多。爲什麼它不喜歡BusinessID。有沒有辦法深入linq樹以及查詢如何轉化爲sql語法?謝謝。 – itisinteresting 2012-04-11 18:15:05
那麼,你是否修復了「rs.Business.BusinessID」?它應該是'rs.BusinessID'。您不能在另一個實體的實體成員('Business.BusinessID')上加入'RegionalService'實體。 – surfen 2012-04-11 19:35:41