到目前为止,我正在创建一个 classLibrary 项目并插入新的 Ado.net 实体数据模型并从 exixting 数据库中生成。类和对象类代码是自动创建的。
这对我来说并不重要。
但我想这样做并将 ObjectContext 类(例如:SomeEntities)和表类分离到两个 calss 库中。
当我更改数据库表属性时,我将更新 edmx 模型并且类将自动更新。
有没有办法做到这一点?
我没有使用 codefirst 因为里面有一个数据库和数据,
我也没有使用模型优先,
我正在使用数据库,但不能分开
最佳答案
由于您的标题中有“poco”,我猜您正在使用 EF4 POCO Generator T4 模板。
那么是的,您可以将 POCO 类和 ObjectContext 分成两个不同的类库。 T4 模板是为该场景准备的,因为它包含两个不同的文件:
如果您在拥有 EDMX 文件的类库中添加 POCO 生成器,则默认情况下,两个 tt 文件都将添加到那里。
但是您可以将第二个文件 (POCOGenerator.tt) 移动到另一个类库中。 (上下文所在的 EDMX 项目需要引用这个库来识别 POCO 类。)然后在文本编辑器中打开这个文件。此文件中的一些第一行将如下所示:
...
string inputFile = @"MyModel.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
...
您现在需要更改 edmx 文件的路径(仅在 POCOGenerator.tt 中,保持 POCOGenerator.Context.tt 不变)。假设您在 Visual Studio 的同一个解决方案中有 edmx 项目和 POCO 项目,则新路径可能是:
...
string inputFile = @"..\..\MyEDMXProject\MyModel.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
...
现在,您可以从两个不同的项目中分别执行这两个文件。一个将创建上下文文件,另一个将创建您的 POCO 文件。
关于entity-framework - 分离 Entity Framework poco 和 objectcontext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565633/