0
我目前正在處理新的EF7,並且處理一對一關係時遇到了奇怪的行爲。EF7一對一的關係
我有以下型號
public class Material
{
[Key]
[Required]
[Column(TypeName = "bigint")]
public long Id { get; set; }
[Required]
[MaxLength(128)]
public string Name { get; set; }
[Required]
[MaxLength(512)]
public string Description { get; set; }
[Required]
[Column(TypeName = "money")]
public decimal CostPerUnit { get; set; }
public virtual Unit UnitOfMeasure { get; set; }
[Required]
[Column(TypeName = "bit")]
public bool IsActive { get; set; } = false;
}
public class Unit
{
[Key]
[Column(TypeName = "bigint")]
public long Id { get; set; }
[Required]
[MaxLength(32)]
public string Name { get; set; }
[Required]
[MaxLength(64)]
public string Description { get; set; }
[Required]
public string Type { get; set; }
}
和我建立的表如下:
builder.Entity<Unit>().Key(u => u.Id);
builder.Entity<Unit>().Property(u => u.Name).MaxLength(64).Required();
builder.Entity<Unit>().Property(u => u.Description).Required();
builder.Entity<Unit>().Property(u => u.Type).Required();
builder.Entity<Material>().Key(m => m.Id);
builder.Entity<Material>().Property(m => m.Name).Required();
builder.Entity<Material>().Property(m => m.Description).Required();
builder.Entity<Material>().Property(m => m.CostPerUnit).Required();
builder.Entity<Material>().Property(m => m.IsActive).Required();
說我遇到的問題是現在,當我嘗試和查詢的材料使用度量單位,度量單位始終設置爲空,但在檢查生成的表時,我可以清楚地看到外鍵實際上已創建。
我也試圖強制在OnModel創建關係,但我仍然無法檢索單元對象。
builder.Entity<Material>().Reference(m => m.UnitOfMeasure).InverseReference().ForeignKey<Unit>(u =>
我應該如何添加這個引用,或者這甚至支持嗎?
是的懶加載是我期待,不知道爲什麼它不工作。在此期間,我不得不急切地加載對象,但真的希望我不必這樣做。這是beta5 – Marqueone