Rav*_*het 5 entity-framework-4
我正在寻找问题的解决方案,而且可能很多人必须面对.
我当然正在处理一个包含近400个表的应用程序.应用程序包含七个类库项目(StudentInfo,库,费用等),每个项目都有自己的.edmx文件(包含50个表),代码生成策略= default和一个引用类库项目的Web应用程序项目.
大约有15个表是常见的,它们将出现在每个类库项目的.edmx文件中.所有.edmx文件中的类/模型的命名空间都是相同的(Campus).
我创建了一个部分类,即School(它是一个通用表/模型),它包含一些方法.
但是抛出以下编译时错误'D:\ Project\Campus\CampusStudent \'和'D:\ Project\Campus\CampusLibrary\bin\Debug\CampusLibrary.dll'中存在类型'Campus.School'
其他成员建议的解决方案
1)为每个.edmx文件分别设置名称空间.
2)对模型使用不同的名称,即StudentSchool,LibrarySchool等.
这两种解决方案都会迫使我在每个类库项目中使用其方法复制公共类.有谁能够帮我?
如果您使用POCO T4模板进行当前实体生成,可以有一种方法.EF中的POCO可以是任何名称空间中的任何类,它们与EDMX中的实体同名,并且具有与EDMX中的实体同名的所有属性(包括getter和setter的相同类型和可访问性).
在另一个程序集中定义您的15个共享类(您必须遵循那些提到的POCO规则)并由所有库项目引用它.一旦你有这个程序集创建自己的POCO T4模板版本,它不会为这些共享实体创建新的类文件,而是使用引用程序集中的类.
另一个选项是手动创建和维护所有这400个类和EF上下文类型.如果您使用仅代码映射(也就是代码优先),那么您将会执行此操作,并且您将不会遇到这些问题.
| 归档时间: |
|
| 查看次数: |
2749 次 |
| 最近记录: |