簡體   English   中英

EF6-TPT-繼承-數據庫優先

[英]EF6 - TPT - Inheritance - Database First

我有2個表格,產品(基於我的商品)和OffShelfItems(按兒童)

我在ID字段上有一個外鍵設置,這是此設置的屏幕截圖:

在此處輸入圖片說明

在我的EDMX中,我已經導入了表格,並將OffShelfItem設置為產品類的成員,這是該設置的屏幕截圖:

在此處輸入圖片說明

但是,當我嘗試使用此測試代碼保存對象時:

OffShelfItem osi = new OffShelfItem();
            osi.WhenAdded = DateTime.Now;
            osi.LastModified = DateTime.Now;
            osi.IsDeleted = false;
            osi.Title = "TEST ITEM";
            osi.RetailPrice = 9.99M;
            osi.DealerPrice = 7.99M;
            ent.Products.Add(osi);
            ent.SaveChanges();

我收到此錯誤:

指定的架構無效。 錯誤:App_Code.Model.ssdl(75,6):錯誤0113:多重性在關系'FK_AA_OffShelfItems_AA_Products'中的角色'AA_OffShelfItems'中無效。 因為從屬角色是指關鍵屬性,所以從屬角色的多重性上限必須為1。

我覺得我真的很想讓它工作起來,我只需要幫助就可以到達那里!

id必須是AA_OffShelfItems表上的主鍵。

這里很好的解釋:

https://leftlobed.wordpress.com/2011/03/02/getting-to-know-entity-framework-table-per-type-tpt-inheritance/

[更新:]

然后,您可以通過擴展上下文來訪問OffShelfItems ,如以下答案中所述:

具有TPT繼承功能的EF Database First僅為基本分類創建DbSet <T>

與類似:

context.Products.OfType<OffShelfItem>()

要么:

partial class Context
{
    public DbSet<OffShelfItem> OffShelfItem{ get; set; }
}

暫無
暫無

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

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