2014-12-13 69 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(); 
相关问题