实体框架4.1 DbContext扩展部分类

时间:2012-01-27 00:00:44

标签: entity-framework entity-framework-4.1

使用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但不会将其转换为其他查询吗?谢谢你的帮助。

1 个答案:

答案 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;

如果我错过解释您的问题,您是否可以使用提议的扩展方法提供代码的示例?