【问题标题】:Generate DataAnnotations with Fluent API and ObjectContext使用 Fluent API 和 ObjectContext 生成 DataAnnotations
【发布时间】:2011-04-04 21:32:55
【问题描述】:

我正在使用 MVC 3 和 Entity Framework 4 构建应用程序。 我已经创建了我的实体数据模型并从中生成了一个数据库。 现在我知道可以在模型属性上使用 [Required] 或 [StringLength(5)] 等验证属性来提供客户端和服务器端的验证。

我想知道这些属性是否也可以动态生成,而不必显式地将它们添加到模型中?我看到在 EF 4.1 RC 中,您可以使用 Fluent API 通过使用 DbModelBuilder 类在 OnModelCreating 方法中进一步配置您的模型。 如图here 我正在使用一个仍然使用 ObjectContext 而不是 DbContext 的框架,所以我想知道上述解决方案是否可以与 ObjectContext 结合使用?

最后一点,由于我一直在尝试弄清楚如何生成和使用数据注释,因此使用视图模型似乎会增加验证的复杂性。从我读到的 here 看来,只需将模型直接传递给视图就不需要向模型和视图模型添加注释。但是,这意味着当您在模型上进行连接并将它们直接传递给视图时,您不能再使用强类型视图?

【问题讨论】:

    标签: asp.net-mvc entity-framework fluent


    【解决方案1】:

    不,它不能。 Fluent API 是描述映射的不同方法。您可以使用 fluent API 或 EDMX(实体数据模型)。不是都。 Fluent API 也仅适用于 DbContext API。如果你想生成注释,你可以尝试修改 T4 模板来生成你的类。

    【讨论】:

      【解决方案2】:

      在使用扩展基类的 poco 类时,我遇到了一个令人不安的问题。 例如,假设您有一个具有强类型 Car 属性的 Person poco 类。您还有一个也使用汽车属性的配偶 poco。

      现在您想使用 Display("Name = xxx") 属性在视图中显示“Person Car”和“Spouses Car”。你不能!!!如果您不使用平面视图模型,请注意这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-01
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        相关资源
        最近更新 更多