1

當我使用「Code First」時,我有一個關於如何定義條目的問題。代碼優先:我應該將數據註釋「必需」放在導航屬性中嗎?

我定義這些數據說明了以下類:

public class Producto 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ProductoID { get; set; } 

    [ForeignKey("Parque"),Required] 
    public int FKParque { get; set; } 
    [ForeignKey("FKParque"), Required] 
    public virtual Parque Parque { get; set; } 

    public string Nombre { get; set; } 
} 

的問題是:我應該把數據註釋「必需」的導航屬性「公園」? 如果我把數據註解,當我嘗試做:

using (MiContexto contexto = new MiContexto()) { 
      Producto nuevoProducto = new Producto(); 
      nuevoProducto.Nombre = "nuevo"; 
      nuevoProducto.FKParque = 1; 

      contexto.Productos.Add(nuevoProducto); 

      contexto.SaveChanges(); 
} 

因爲通航屬性爲null,並根據需要被標記時出現錯誤。

什麼是正確的方法?

對不起,如果我的英語不是很好。

Thx。

回答

0

我認爲將required屬性放在FKParque上就足夠了。直到從數據庫中保存/檢索對象之前,導航屬性纔會被填充,因此即使外鍵不可能也可能爲空。

+0

ok, 感謝您的回答 –

相關問題