【发布时间】:2015-11-12 05:52:02
【问题描述】:
环境:EF 6,SQL 2012
设置:数据库优先,禁用延迟加载
这个问题可能看起来更笼统,但会尽量以最好的方式解释它。
我有一个使用 ASP.NET MVC 的大型应用程序,并根据逻辑功能对实体进行分组。因此我们构建了多个 EDMX 文件
在某些情况下,我们必须在两个 EDMX 文件中使用相似的实体。
School 与Teachers 和Students 有关系。在第一个EDMX 文件中,我使用了school 和Teachers。在第二个EDMX 文件中,我使用了school 和students
但只有一个实体类被创建。如果我在第二个 EDMX 上下文文件上运行自定义工具,那么我的第一个 edmx 上的 entity(school.cs) 会消失并出现在第二个 ..
- 为什么会出现这种奇怪的行为?
这是我的第一个 EDMX 文件中的代码
正如您在此处看到的,我没有访问school 实体,并且我还禁用了延迟加载。但它抱怨它找不到school 文件。注意:课程具有到学校的导航属性。但我没有把它包括在这里.. 为什么会这样?
var courses= DB.courses
.AsNoTracking()
.Select(e =>
new CourseDTO()
{
CourseID= e.CourseID,
Name= e.CourseName,
Desc= e.Desc,
isActive= e.isActive
})
.OrderBy(e => e.CourseID);
问题是,我只能在 EDMX 文件中包含一个实体。 在第一个 EDMX 中,它具有教师的导航属性 在第二个 EDMX 中,它具有与学生相关的导航属性。但一次只存在实体文件。只有一个实体文件,代码会中断 注意:这只是示例......不是我的原始应用程序
【问题讨论】:
-
重命名 edmx 文件之一中的实体名称,例如
TeacherSchool。 -
@GertArnold,我更新了对我有用的解决方案。但如果有任何错误,请帮我解决......