簡體   English   中英

實體框架-實體拆分

[英]Entity Framework - entity splitting

假設我具有以下類結構。 當我將其映射到表時,我將創建四個表:“ Order”表,其中OrderId為主鍵,OrderDate為日期/時間列; “ OrderDetail”以OrderId為主鍵,並為“ Order”表的外鍵(“ Description”將是“ OrderDetail”表的另一列)。 “地址”表以OrderId為主鍵,並且是“ OrderDetail”表的外鍵(“地址”表也將包含address1和city),最后是“ ExtraStuff”表,其中以OrderId為主鍵,並且是“ OrderDetail”的外鍵。 到目前為止一切都很好。

現在問這個問題。 假設我想從OrderDetail類中刪除“ Description”。 映射它的最簡單方法是從“ OrderDetail”表中刪除“ Description”列,但這將使OrderDetail表僅帶有一個OrderId列,我不希望這樣做。 如何在我的情況下使用OrderDetail類,以免創建僅包含一列的OrderDetail表? 我想在邏輯上使用OrderDetail,但是讓“ Address”和“ ExtraStuff”表使用“ Order”表中的OrderId。

public class Order
{
    public int OrderId { get; set; }

    public DateTime OrderDate { get; set; }

    public virtual OrderDetail Detail { get; set; }
}


public class OrderDetail
{    
    public OrderDetail()
    {
        this.Addresses = new HashSet<Address>();
        this.Extra = new HashSet<ExtraInfo>();
    }

    public int OrderId { get; set; }

    public string Description { get; set; }

    public virtual ICollection<Address> Addresses { get; private set; }

    public virtual ICollection<ExtraInfo> Extra { get; private set; }
}

public class Address
{    
    public int OrderId { get; set; }

    public string Address1 { get; set; }

    public string City { get; set; }
}

public class ExtraInfo
{    
    public int OrderId { get; set; }

    public string SomeStuff { get; set; }        
}

恕我直言,保持簡單。 如果您不打算在OrderDetail中擁有任何特定的屬性並且不想擁有這樣的表,則將OrderDetail與Order合並。

暫無
暫無

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

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