我有 2 个实体 Line 和 Tag。关系是 Line *----* Tag
从 line 我有一个导航属性 Line.Tags,它返回 Tag 对象的列表。 Tag.Name 是我之后的字符串值。
我真正需要的是以逗号分隔的方式获取所有标签名称,如下所示:
tag1, tag2, tag3
我试图在投影中这样做,但它说它不支持 toString()
var o = dgvLines.CurrentRow.DataBoundItem as Order;
var r = _rs.Lines.Where(y => y.InvoiceNo == o.InvoiceNo).Select(x => new
{
ReturnNo = x.Return.ReturnNo,
Part = x.Part,
Tags = String.Join(", ", x.Tags.ToList().Select(t => t.Name))
});
dgvExistingParts.DataSource = r;
错误:
LINQ to Entities 无法识别“System.String Join(System.String, System.Collections.Generic.IEnumerable`1[System.String])”方法,并且此方法无法转换为存储表达式。
知道如何获得这个逗号分隔的标签列表吗?
提前致谢。
请您参考如下方法:
var r = _rs.Lines.Where(y => y.InvoiceNo == o.InvoiceNo).ToList().Select(x => new
{
ReturnNo = x.Return.ReturnNo,
Part = x.Part,
Tags = String.Join(", ", x.Tags.Select(t => t.Name))
});
