在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的另一个项目中,我有一个类似的查询,运行正常。
答案 0 :(得分:3)
你的问题就在这一行
SupplierName = from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME
SupplierName
是string
,但右侧是查询。请尝试在查询中分配唯一的结果。
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;