我想对这个问题有一些建议:
我们有一个使用经典ADO.NET
进行数据访问的解决方案(就像4岁以上)。
数据访问体系结构已经在.NET 2.0.
时构建
我们的数据类是从FooDataBaseObject
(名称实际上并不重要)继承的简单类,它具有CRUD操作的默认实现。我们的属性标有自定义属性(保存必要的数据,如表中相应列的名称等)。与数据类相同(自定义属性用于指定表名等)。
实体之间的关系在特殊的.xsd和.xml文件中指定。表本身很少有外键和其他典型的约束(我们实际上已经继承了这个表,客户已经禁止我们修改它们,因为它们仍然使用导入和导出引擎)。但我相信我能够说服人们重构数据库。
问题在于现有服务。有没有办法引入EF仍有可能使用旧的ado.net服务?
我目前正在考虑使用 EF Code First 方法的想法,因为我不需要生成或继承某些特定的类等实体,而不是我将能够(我希望)为它们构造DbContext
并映射到现有数据库。
此外,可能有一种方法可以为旧数据类创建镜像类。说Customer
- > CustomerEntity
。 CustomerEntity
将镜像Customer
的所有必要属性,然后在DbContext
和DbSet
中使用,以便我们在新服务中使用CustomerEntity
只是Customer
旧的。
我想知道这种方法的潜在瓶颈以及这种方法的可能性(这实际上是真的吗?)还是其他一些建议等等。 谢谢!
答案 0 :(得分:1)
如果表没有外键关系,那么使用EF会遇到很多问题。 EF通常依赖于这些关系,以便在代码中创建关系。
当然,您可以将它们视为单独的表格 - >单个对象并手动处理所有键。
您不太可能无需修改就可以将类映射到旧代码,因为旧代码似乎依赖于它自己的辅助方法,以及提交或回滚数据的方法。在不了解现有对象模型的情况下,很难说。
我要做的是创建一个EF模型,然后在升级你的应用时开始逐个使用它。只要您现有的代码单独处理事物,并且整个代码中没有很多依赖项。