簡體   English   中英

EF 6檢索子自動生成的外鍵的父級

[英]EF 6 Retrieve parent for child autogenerated foreign key

我正在使用以下幾個實體:

public class Store {
    public int Id { get; set; }
    public virtual ICollection<Product> Products { get; set; }
    public virtual ICollection<Promotion> Promotions { get; set; }
}

public class Product {
    [product properties here...]
}

public class Promotion : Product {
    [extra promotion properties here...]
}

通過使用Code First,它生成了我的數據庫。 它生成了一個Products表,帶有一個鑒別器(為了區分它所存儲的類型),然后是一個Store_Id外鍵,當它是Product時填充,另一個Store_Id1在使用促銷時使用。

現在,過了一段時間,我需要從特定的促銷活動訪問商店。 如何做呢? 我嘗試使用Fluent並告訴它外鍵但我失敗了。

你們能告訴我一些事嗎?

謝謝,

這不僅僅是一個簡單的多對一關系嗎?

public int StoreID { get; set; }
public virtual Store Store { get; set; }
public int Store1ID { get; set; }
public virtual Store Store1 { get; set; }

modelBuilder.Entity<Store>()
            .HasMany(m => m.Products)
            .WithRequired(m => m.Store);

modelBuilder.Entity<Store>()
            .HasMany(m => m.Promotions)
            .WithRequired(m => m.Store1);

Product.StoreProduct.Store1只是導航屬性回到他們的商店。

我相信你的建模可以改進...... Promotion不應該擴展Product 您應該將它們分離,將促銷點放到產品和商店(如果您想要商店特定促銷)...意味着ProductStore應該是Promotion實體中的一個字段...進一步擴展,想象什么會看起來如果您想進行涉及多種產品的單一促銷活動(例如:肥皂和洗發水,運動鞋和襪子等......)

暫無
暫無

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

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