0

如何在投影中连接两个字符串?

这是我到目前为止所拥有的:

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);
 }

我需要在我的投影的 Name 属性中连接 year 和 name 属性。

给我的错误是“NotSupportedException”,表示 LINQ to Entities 无法识别 deJoin()方法并且无法转换为存储表达式。

4

2 回答 2

1
 data = MyEntity.GetEntities(_db).OrderBy(a=> a.name)
                .Select(b=> new NameIdentity
                {
                    ID = b.entityID,
                    Name =  b.year +"-" + b.name
                });
于 2013-08-07T10:06:58.717 回答
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) 
            });

您还可以使用规范函数

于 2013-08-07T10:11:45.520 回答