EF5 Code First - 数据注释与Fluent API

时间:2013-08-05 10:08:43

标签: entity-framework data-annotations fluent

我是Entity Framework的新手,我即将使用EF5 Code First开始一个新的ASP.NET MVC项目。

据我了解,您可以对域模型对象中的属性使用数据注释,也可以使用Fluent API来定义属性数据类型(在创建对象时在DB中),大小,是否可以为空等等。

是否有一般推荐的方法可以使用?

我无法看到在使用数据注释时如何,我可以在数据库中创建该属性时指定该属性的数据类型和大小,而使用Fluent API,您可以执行以下操作:

Property(g => g.ModelName).HasColumnType("varchar");
Property(g => g.ModelName).HasMaxLength(100);
Property(g => g.ModelName).IsRequired();

使用数据注释时,默认情况下,它似乎是对我的所有字符串属性使用nvarchar(MAX)。

有没有办法使用数据注释来完成上述操作?它是否提供与Fluent API相同程度的“调整”,还是应该单独离开域模型并将所有这些“调整”分离为每个域模型对象的Fluent API类?

1 个答案:

答案 0 :(得分:3)

我会推荐流畅的API。数据注释是一个子集,例如不包括关系的级联删除。

此外,您可能会考虑使用持久性逻辑(例如数据库列名称不合适)污染模型。