【问题标题】:EF5 Code First - Data Annotations vs Fluent API [duplicate]EF5 Code First - 数据注释与 Fluent API [重复]
【发布时间】:2013-08-05 10:08:43
【问题描述】:

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

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

是否有一个通用的推荐方法?

我看不到在使用数据注释时如何指定在数据库中创建该属性时的数据类型和大小,而使用 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 类?

【问题讨论】:

    标签: entity-framework data-annotations fluent


    【解决方案1】:

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

    此外,您可能会考虑使用不恰当的数据库列名等持久性逻辑来污染您的模型。

    【讨论】:

    • more info 。您知道现在(2013 年 12 月)的 fluent API 是否可以像 Data Annotations 那样使用 MVC 验证?
    • 很难跟上不断变化的功能和 API...fluent api validation
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2012-09-05
    相关资源
    最近更新 更多