我们正在使用ORM /域建模工具,它允许我们在MSSQL数据库中以“数据库优先”方法生成的多个项目/程序集中生成多个相关的域模型。我们需要一些帮助来确定哪些工具可以满足我们的需求。
要求是:
跨项目关系
跨项目继承
生成的类应为:
对于支持(或有解决方案支持)这些标准的任何ORM工具的任何反馈都将不胜感激!
注意:我们已经查看过的工具(但这并不完全排除它们):
AsSeparateProjects
模式进行分组时,它似乎不支持跨模型关系,更不用说继承了。)答案 0 :(得分:1)
这绝对需要小型概念验证项目,因为您的要求不是关于EF的论文中常见的内容。
对于1.和2.阅读这些文章(part 1,part 2)并尝试制作简单的解决方案,证明您能够在多个EDMX中使用关系和继承。< / p>
用于从EDMX生成类的自定义T4模板将满足最后一点 - 从POCO模板开始并更改其生成功能。
答案 1 :(得分:1)
虽然听起来可能与你所要求的相反,但我可能会看EF Code First。因为它都是建立在POCO,DbSets和DbContext类之上,所以你可以很容易地获得继承。
在公共程序集中包含共享模型和抽象DbContext。在客户特定的程序集中具有特定模型和最终DbContext。
在WinForms前端,example code here有关于如何使集合可观察的问题。你需要自己处理INotifyPropertyChanged,但这很容易。
EF Code First的缺点是你无法生成所有类。话虽这么说,但它们很简单,我可能只是在编写应用程序的其余部分时根据需要编写它们。任何形式的通用自动化工具都无法确定哪些模型和属性与特定于客户的属性相同。