我有一大堆实现业务逻辑的类。大多数都有一个.Load方法,它使用普通的旧ADO.net来读取我多年来手写的Sql Server的值。这一切都早于Linq2Sql和EF。具有现有类和现有表的实体框架4.1
现在我想更新我的类库来使用实体框架,但我想尽可能无痛地做到这一点。我已经了解到EF可以从我的类中的属性名称中推断出列名和键名,但是我的类有许多属性与列名称不匹配,而某些属性与数据库的列名称不匹配。我宁愿不必去.Ignore()每个这些属性(并记住总是.Ignore()任何未来的属性)和.HasColumnName()所有的差异。
对现有表和现有类使用EF最简单的方法是什么,所以我可以做最小限度的映射,并仍然使用DbContext来实现.Find()实体和SaveChanges()以及所有其他强大类型的强大类型的事物EF支持而无需手动通过我的所有商业课程并注释哪些属性包含在内?
例如,我希望能够db.Customers.Find(123)并让它创建一个Customer实例,从CustomerID = 123的客户中选择*,并将存在的列映射到尽可能保持最佳状态的属性,并给我一个随时可以使用的Customer实例,然后我可以根据需要注释任何差异。这是可能的还是我要求过多的EF?
是否有更聪明的DbContext可以尽最大努力映射属性,以便利用我现有的所有业务类?也许我应该考虑一些其他的ORM?
其他ORM不会帮你。如果你有数据库和类,你必须总是努力为每个类创建正确的映射。 – 2012-03-19 20:55:40