2014-12-13 40 views
0

支持這些是我的疑問:只有基本類型或枚舉類型在這種情況下在LINQ

var originals = (from x in db1.MyStrings select x).ToList(); 

var translations = (from x in db2.MyTranslations.Where(x => x.language_id == languageId) 
           join y in originals 
           on x.original_id equals y.Id into joined 
           from j in joined.DefaultIfEmpty() 
           select new { x.language_id, x.translation, j.Content, j.Id }).ToList(); 

我有2個不同的數據庫中兩個表。我想要獲得所有原始字符串,並將其與他們的翻譯一起加入,如果有的話。因此,列表將與db1中原始字符串表的大小相同。 MyStrings存儲原始字符串,MyTransaltions存儲翻譯。

我現在得到的錯誤是:無法創建類型'MyString'的常量值。只有原始類型或枚舉類型在此上下文中受支持。

+0

MyStrings是一個表格還是一些原始數據? – dotnetstep 2014-12-13 10:12:17

+0

@dotnetstep MyStrings有2列:id和內容,它們是int和nvarchar。 – 2014-12-13 10:18:21

+0

您正在加入內存列表中的db。在第一個語句中刪除'.ToList()'。 – Silvermind 2014-12-13 10:23:49

回答

0

只要嘗試下面的工作和如果問題是相同的我只遇到一次。

var translations = (from y in originals 
           join x in db2.MyTranslations.Where(x => x.language_id == languageId) 
           on x.original_id equals y.Id into joined 
           from j in joined.DefaultIfEmpty() 
           select new { x.language_id, x.translation, j.Content, j.Id }).ToList(); 
相關問題