Linq to Entities和连接属性

Cra*_*lla 6 c# linq linq-to-entities c#-3.0

有没有人知道是否可以在现有实体类型上创建一个新属性,该实体类型基于连接在一起的其他2个属性?

例如,我的人员实体类型包含这些字段"ID","Forename","Surname","DOB"

我想创建一个名为"Fullname"的新字段

Forenames + " " + Surname
Run Code Online (Sandbox Code Playgroud)

所以我最终得到了"ID","Forename","Surname","DOB","Fullname".

我知道我可以通过编程方式使用Linq来做到这一点

var results = from p in db.People
select new { 
ID = p.ID, 
Forename = p.Forename, 
Surname = p.Surname, 
DOB = p.DOB,
Fullname = p.Forename+ " " + p.Surname
};
Run Code Online (Sandbox Code Playgroud)

然后打电话给像

var resultsAfterConcat = from q in results 
where q.Fullname.Contains(value)
select q;
Run Code Online (Sandbox Code Playgroud)

但是,我真的很想使用Linq to Entities在概念模型级别为我做这项工作.

Cra*_*ntz 4

还没有,但也许很快了。首先,请注意,无论有或没有该属性,您建议的查询在 LINQ to Entities 中根本不起作用,因为目前它不支持 Contains。然而,.NET 4.0 中实体框架的新版本应该支持 LINQ to Entities 查询中的自定义方法。您可以观看PDC 的有关此内容的视频。本质上,您必须编写两次自定义方法;一次在代码中,一次在数据库中(例如,在计算字段中)。请观看视频了解更多信息。