0

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

无法将源类型“System.Linq.IQueryable”转换为目标类型“字符串”

这是查询:

  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 的另一个项目中,我有一个运行良好的类似查询。

4

1 回答 1

4

你的问题是这条线

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;
于 2012-11-22T10:47:48.757 回答