2016-12-01 58 views
2

我不明白使用OnModelCreating函數是什麼原因?爲什麼需要使用OnModelCreating(首先是MVC 5 EF代碼)?

時,我可以這樣做

[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public Int Id { get; set; } 

public Int LanguageId { get; set; } 
[ForeignKey("LanguageId")] 

public Language Language { get; set; } 

也許我錯了,但是當我讀這個,它是解釋它是多到多的關係。所以爲什麼不做這樣的事情。

ICollection<User> Users 

回答

4

爲了使實體之間的關係,我們有兩個選擇

  1. DataAnnotation(您正在使用)
  2. 流利的API。

當我們使用流利的API時,我們需要在這個OnModelCreating(DbModelbuilder modelbuilder)方法中指定我們的關係。因此,當第一次創建模型時,他們應該維護實體之間的關係。

爲使用這種方法常見的例子是在此以下代碼snnipet

modelBuilder.Entity<Department>().Property(t => t.Name).HasMaxLength(50); 

可使用數據註釋屬性來實現相同的給定。

[MaxLength(50)] 
public string Name {get;set;} 

所以,如果你不想使用DataAnotation用流利的API,以滿足您的目的。

+0

Rajput謝謝,現在我明白了。 – liran