使用EF 4.1和Database First构建C#应用程序。我的问题集中在使用扩展方法通过DbContext对象返回值。
我的实体由DbContext生成器创建为部分类。我有一个 Projects 表和一个相关的 Managers 表,通过上下文对象,我可以执行LINQ查询和访问项目以及分配的项目经理。如果 Manager 表具有firstname和lastname字段,我如何将我的扩展名编写为连接名字和姓氏字段的属性或方法,以便在查询项目并使用manager关系时 FullName 会返回合并后的值吗?
此示例有一个变量_ projects ,其中填充了使用LINQ查询创建的Projects列表:
Fields["manager"].Value = _projects[i].Project.ProjectManager.FullName
我可以将 FullName 属性转换为方法并传递管理员的ID但不会将其转换为其他查询吗?谢谢你的帮助。
答案 0 :(得分:1)
如果您知道您将始终访问ProjectManager
导航属性,则可以使用Include
方法将其包含在初始查询中
var projects = (from p in ctx.Projects
select p)
.Include(p => p.ProjectManager)
.ToList();
然后,您可以将以下属性添加到Manager
类(在单独的文件中而不是生成的文件中)
public string FullName
{
get { return FirstName + " " + LastName; }
}
使用
访问它var manager = projects[0].ProjectManager.FullName;
如果我错过解释您的问题,您是否可以使用提议的扩展方法提供代码的示例?