实体框架代码第一个最佳实践问题?
大家好我在NTier应用程序上使用EF codeFirst 6。
我发现我用来映射到EF的poco对象实际上是EntityFramework特有的。让我举个例子
如果我想在对象中添加与EF无关的属性,EF不喜欢它。 我读了你可以把“NotMapped”属性,但它开始使这个对象难以维护。
也可能有开发人员不熟悉EF而且不会理解这个问题。
我的问题是保持EF实体模型分离并有一个dto转换为/从域模型的好习惯 开发人员可以用它做他喜欢的事情而不会干扰EF模型,这显然是数据库中表格的1比1
任何建议?
答案 0 :(得分:1)
使用Fluent API
方法而不是Attribute-based
(Annotations)方法可以解决您的问题。请参阅Entity Framework Fluent API。
您可以在DBContext中而不是在实体类中配置实体映射。
来自上述链接文章:
指定不将CLR属性映射到数据库中的列
以下示例显示如何在CLR上指定属性 type未映射到数据库中的列。
modelBuilder.Entity<Department>().Ignore(t => t.Budget);
这意味着“忽略Bugdet
实体中的Department
属性。”