2011-04-04 54 views
1

我正在使用MVC 3和Entity Framework 4構建應用程序。 我創建了我的實體數據模型並從中生成了一個數據庫。 現在我知道可以在模型屬性上使用[必需的]或[StringLength(5)]等驗證屬性來驗證客戶端和服務器端的驗證。使用Fluent API和ObjectContext生成DataAnnotations

我想知道這些屬性是否也可以動態生成,而不必將它們明確地添加到模型中?我在EF 4.1 RC中看到,您可以使用Fluent API通過使用DbModelBuilder類在OnModelCreating方法中進一步配置您的模型。 如圖所示here 我正在使用一個框架,但仍然使用ObjectContext而不是DbContext,所以我想知道上述解決方案是否可以與ObjectContext結合使用?

作爲最後一點,由於我一直在想如何生成和使用數據註釋,它似乎使用視圖模型會增加驗證的複雜性。從我讀的 here看來,只是將模型直接傳遞給視圖將消除向模型以及視圖模型添加註釋的需要。但是,這意味着當你加入模型並直接將它們傳遞給視圖時,你不能再使用強類型視圖?

回答

0

不,它不能。 Fluent API是描述映射的不同方法。您可以使用流利的API或EDMX(實體數據模型)。不是都。 Fluent API也只適用於DbContext API。如果你想要生成註釋,你可以嘗試修改生成你的類的T4模板。

0

當使用擴展基類的poco類時,遇到了令人不安的問題。 例如,假設您有一個具有強類型Car屬性的Person poco類。你也有一個配偶poco,也使用汽車財產。

現在,您要在視圖中使用Display(「Name = xxx」)屬性顯示「Person Car」和「Spouses Car」。你不能!如果您不使用平板,請注意此問題。