使用EF 4.1 Mapper类

时间:2012-09-22 12:12:39

标签: entity-framework orm ef-code-first

我正在使用EF Power Tools从已存在的数据库生成POCO类。 它生成一个类和一个mapper类,例如: 班级人员 class PersonMapper 由于我首先使用反向代码,我真的需要映射器类吗? 我需要DB表名和列名,它们是在Mapper类中生成的。 我应该将它们作为属性移动到POCO类吗?

2 个答案:

答案 0 :(得分:0)

EF Power Tools使用流畅的api将您的类/属性映射到表/列。如果你的所有类/属性都符合EF约定(你可以通过跟随Ladislav的回答here找到更多关于约定的信息,那么你既不需要属性也不需要映射器类。但通常,你有一些不符合约定的映射。 / p>

就我个人而言,我认为使用流畅的api是一种更清洁的方式,因为它使你的poco类不受影响(不需要任何属性),一旦掌握了它,用流利的api写作比感觉更容易(至少对我而言)。特别是在多对多或一对多的关系中。

最重要的是EF Power Tools为您完成所有工作。那么为什么还要将它更改为属性或删除它们呢?

答案 1 :(得分:0)

我正在寻找属性而不是流畅的API的原因是我已经有很多代码和项目使用一个类作为模型来映射对象并进行验证。

如果我想使用流畅的API,我需要更改大量代码以使用一个类并使用另一个类进行验证。

希望我找到Rowan Miller的解决方案。

我可以使用指南firtst将[Table]和[Column]标签移动到模型,然后进行更多修改以移动[Required],[RowVersion],[MinLength]和[MaxLength]属性并摆脱Map类

如果有人想要仅使用属性而不是使用流畅的API,我会在以下情况下进行修改: download

我省略了一些属性和映射,因为我不需要它们。也许需要一些格式化。它没有完全测试! 我会更多地研究它并在以后替换该文件。