无法将sourcetype'System.Linq.IQueryable <string>'转换为目标类型'string'</string>

时间:2012-11-22 10:41:57

标签: linq entity-framework linq-to-entities

在VisualStudio 2008中,我的linq查询出现以下错误:

无法将sourcetype'System.Linq.IQueryable'转换为目标类型'string'

这是查询:

  var query = (from c in model.ITEMLIST
               select new ItemList
                        {
                          LineNo = c.LINE_NO,
                          SupplierName = from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME
                                                     });

如果我在LinqPad中运行相同的查询,则会成功返回预期结果

我正在使用LinqToEntity。 在我使用LinqToSql的另一个项目中,我有一个类似的查询,运行正常。

1 个答案:

答案 0 :(得分:3)

你的问题就在这一行

SupplierName = from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME

SupplierNamestring,但右侧是查询。请尝试在查询中分配唯一的结果。

SupplierName = 
    (from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME).Single()

或者,我喜欢的风格

SupplierName = model.VENDOR.Single(v => v.ID == c.ID_VENDOR).NAME;