如何在投影中连接两个字符串?
这是我到目前为止所做的:
IEnumerable<NameIdentity> data = null;
JsonResult res;
using (DBContext _db = new DBContext())
{
data = MyEntity.GetEntities(_db).OrderBy(a=> a.name)
.Select(b=> new NameIdentity
{
ID = b.entityID,
Name = String.Join(" - ", new String[]{ b.year, b.name })
});
res = Json(data.ToList(), JsonRequestBehavior.AllowGet);
}
我需要在我的投影的名称属性中连接年份和名称属性。
给出的错误是“NotSupportedException”,表示LINQ to Entities无法识别de Join()
方法,并且无法将其转换为商店表达式。
答案 0 :(得分:1)
data = MyEntity.GetEntities(_db).OrderBy(a=> a.name)
.Select(b=> new NameIdentity
{
ID = b.entityID,
Name = b.year +"-" + b.name
});
答案 1 :(得分:1)
当您使用linq-to-entities时,您无法在查询中使用任意.NET方法,您可以使用EdmFunctions,我在这里使用EdmFunctions.Concat
data = MyEntity.GetEntities(_db).OrderBy(a=> a.name)
.Select(b=> new NameIdentity
{
ID = b.entityID,
Name = EdmFunctions.Concat(b.year, "-", b.name)
});
您还可以使用Canonical功能