我正在寻找解决我所面临的问题的办法,而且可能有许多人必须面对。
现在,我正在开发一个包含近400个表的应用程序。应用程序由七个类库项目( StudentInfo、库、费用等)组成,每个项目都有自己的.edmx文件(由50个表组成),其中包含代码生成strategy=default和引用类库项目的单个web应用程序项目。
在每个类库项目中,大约有15个表是常见的,并且将出现在.edmx文件中。类/模型的命名空间在所有.edmx文件中都是相同的(校园)。
I创建了一个部分类,即School(它是公共表/模型之一),其中包含一些方法。
但是,引发下面的编译时错误-- 'Campus.School‘类型同时存在于’D:\Project\校园\CampusStudent\‘和Campus.School中。
其他成员提出的解决办法
1)为每个.edmx文件设置不同的名称空间。
2)对模型使用不同的名称,即StudentSchool、LibrarySchool等。
这两种解决方案都将迫使我在每个类库项目中复制公共类及其方法。有人能帮我吗?
发布于 2012-02-07 08:15:25
如果您在当前实体生成中使用POCO T4模板,可以使用一种方法。EF中的POCOs可以是任何名称空间中的任何类,其名称与EDMX中的实体具有相同的名称,并且具有与EDMX中的实体同名的所有属性(包括getter和setter的相同类型和可访问性)。
在另一个程序集中定义您的15个共享类(您必须遵循这些POCO规则),并由所有库项目引用它。一旦有了这个程序集,就可以创建自己版本的POCO T4模板,它不会为这些共享实体创建新的类文件,而是使用引用程序集中的类。
另一个选项是手动创建和维护所有这400个类和EF上下文类型。如果只使用代码映射(也称为代码优先),并且不会出现这些问题,这就是您要做的事情。
https://stackoverflow.com/questions/9172173
复制相似问题