The*_*ebo 7 c# entity-framework-4.1
作为我们的应用程序架构的一部分,我们希望在功能层之间定义清晰的线条.因此,典型的应用程序解决方案将包含:
这些最终成为完全不同的组件.
实体/模型描述是为了将数据库访问功能保持在与POCO不同的层中,因此只有Task需要了解Model,而Presenter的所有人都知道实体
这在使用Code-First或Fluent-API时效果很好 - 但由于在这些范例中缺乏对SPROC的支持,事实证明在EF 4.1下我必须使用EDMX模型.
所以 - 我正在使用DbContext Generator生成POCO,但结果类最终在.Model下,虽然我可以将其命名空间强制转换为.Entity,但它们仍然存在于.Model程序集中,这意味着现在.Presenter必须引用.Model来获取应该在.Entity中的类.
有没有办法强制或欺骗EF将其生成的输出转储到另一个项目?
Lad*_*nka 16
当然.DbContext Generator只是两个T4模板.您可以将模板生成实体移动到其他项目.您只需要修改模板以指向正确的EDMX文件.这是默认值:
string inputFile = @"Model.edmx";
Run Code Online (Sandbox Code Playgroud)
您必须将其更改为EDMX文件的相对地址.它将是这样的:
string inputFile = @"../Model/Model.edmx"
Run Code Online (Sandbox Code Playgroud)
模板将自动为生成的实体使用当前项目的默认命名空间,但您必须修改上下文的第二个模板以使用新命名空间,以便从引用的程序集中正确解析实体类型.
在另一个项目中使用模板有一个小缺点 - 在修改模型时它不会自动更新.您必须始终使用模板文件上下文菜单中的"运行自定义工具"手动触发实体重新创建.
| 归档时间: |
|
| 查看次数: |
4176 次 |
| 最近记录: |