簡體   English   中英

EF7一對一關系

[英]EF7 One to One relationships

我目前正在努力處理新的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();

我現在遇到的問題是,當我嘗試使用計量單位查詢材料時,計量單位始終設置為null,但是當我檢查生成的表時,我可以清楚地看到外鍵是實際創建的。

我也曾試圖在創建OnModel時強制關系,但是我仍然無法檢索該單元對象。

builder.Entity<Material>().Reference(m => m.UnitOfMeasure).InverseReference().ForeignKey<Unit>(u => 

我應該如何添加此參考,或者甚至還支持此參考?

您如何嘗試獲取參考? 此時的延遲加載在EF7中不起作用。 您必須進行急切的裝載(dbContext.Materials.Include(m => m.UnitOfMeasure))或該裝載的顯式版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM