Entity framework 实体框架4.1 DbContext扩展部分类

Entity framework 实体框架4.1 DbContext扩展部分类,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,首先使用EF4.1和数据库构建C#应用程序。我的问题集中在使用扩展方法通过DbContext对象返回值 DbContext生成器将我的实体创建为分部类。我有一个Projects表和一个相关的Managers表,我可以通过上下文对象执行LINQ查询并访问项目和分配的项目经理。如果Manager表中有firstname和lastname字段,我如何将扩展名作为属性或方法写入以连接first和lastname字段,以便在查询项目并使用Manager关系时,属性FullName返回组合值 此示例包含一个

首先使用EF4.1和数据库构建C#应用程序。我的问题集中在使用扩展方法通过DbContext对象返回值

DbContext生成器将我的实体创建为分部类。我有一个Projects表和一个相关的Managers表,我可以通过上下文对象执行LINQ查询并访问项目和分配的项目经理。如果Manager表中有firstname和lastname字段,我如何将扩展名作为属性或方法写入以连接first和lastname字段,以便在查询项目并使用Manager关系时,属性FullName返回组合值

此示例包含一个变量_projects,其中填充了使用LINQ查询创建的项目列表:

Fields["manager"].Value = _projects[i].Project.ProjectManager.FullName

我可以将FullName属性转换成一个方法,并将id传递给管理器,但是这不会使它转换成一个额外的查询吗?感谢您的帮助。

如果您知道您总是要访问
ProjectManager
导航属性,您可以使用
include
方法将其包含在初始查询中

var projects = (from p in ctx.Projects
                select p)
                   .Include(p => p.ProjectManager)
                   .ToList();
然后,您可以将以下属性添加到
管理器
类中(在生成的文件之外的单独文件中)

并使用

var manager = projects[0].ProjectManager.FullName;

如果我问了你的问题,你能举一个例子说明使用你建议的扩展方法你的代码会是什么样子吗?

谢谢Brice的回答。我现在意识到名字和姓氏是可用的,因为我正在扩展Manager分部类。你写的那处房产很合适。
var manager = projects[0].ProjectManager.FullName;