2015-04-16 37 views
5

我可以在實體框架中爲我的實體使用代碼優先結合流利API配置嗎?實體框架代碼結合流利api配置的第一個屬性

謝謝。

+0

可以,但如果可能的話,你最好避免,因爲你的實體元數據映射將兩個文件可能會導致錯誤之間傳播/或者有時候雙重工作。 –

回答

5

是的,你可以。我一般喜歡(通過使用StringhLength(1, 10)例如,使得通過使用[Required]或定義爲一個字符串屬性的長度所需要的屬性)來定義一些限制:

[Required] 
    [StringLentgh(1,10)] 
    public string BookName {get;set;} 

在另一方面,我一般用流利API來定義的關係(例如,1對多的關係)

dbContext.Entity<Book>() 
      .HasRequired(b => b.Author) 
      .WithMany(a => a.Books) 
      .HasForeignKey(b => b.AuthorId) 

然而,你可能更願意使用流利的API,以及爲模型中實現約束。也就是說,您可以只使用流暢的API來完成所有工作。但是,數據註釋並不全面。檢查這些以獲取更多信息:

https://stackoverflow.com/a/5356222/1845408

http://www.codeproject.com/Articles/476966/FluentplusAPIplusvsplusDataplusAnnotations-plusWor

http://www.codeproject.com/Articles/368164/EF-Data-Annotations-and-Code-Fluent

+0

非常感謝erkaner。 – Zole

相關問題