第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 Entity Framework Core 共享表

使用 Entity Framework Core 共享表

C#
蝴蝶刀刀 2022-12-04 11:15:05
我有多個(gè)實(shí)體,我想共享一個(gè)“圖像”表。例如,產(chǎn)品可以有圖像列表,類別可以有圖像列表。我想使用枚舉“EntityType”來區(qū)分它是什么類型的實(shí)體。我下面的解決方案不起作用,因?yàn)楫?dāng)我嘗試插入帶有 EntityId 的圖像時(shí)出現(xiàn)外鍵錯(cuò)誤,該圖像可能存在于 Category 中但不存在于 Product 中。這是有道理的,因?yàn)橄旅娴慕鉀Q方案沒有考慮“EntityType”。是否有關(guān)于如何實(shí)現(xiàn)此目標(biāo)的建議?我知道我可以使用“ProductId”、“CategoryId”等代替“EntityId”,但我會(huì)有很多實(shí)體,所以我不想那樣做。public class Product{    public int Id { get; set; }        public List<Image> ProductImages { get; set; }}public class Category{    public int Id { get; set; }        public List<Image> CategoryImages { get; set; }}public class Image{        public int EntityId { get; set; }        public EntityType EntityType { get; set; }        public string ImageUrl { get; set; }        public Product Product { get; set; }        public Category Category { get; set; }}modelBuilder.Entity<Product>().ToTable("Product");modelBuilder.Entity<Category>().ToTable("Category");modelBuilder.Entity<Image>().ToTable("Image");modelBuilder.Entity<Image>().HasOne(p => p.Product).WithMany(p => p.ProductImages).HasForeignKey(p => p.EntityId);modelBuilder.Entity<Image>().HasOne(p => p.Category).WithMany(p => p.CategoryImages).HasForeignKey(p => p.EntityId);
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

您所描述的是多對(duì)多關(guān)系。為此,您需要一個(gè)實(shí)體來跟蹤所述關(guān)系:


public class ProductImage

{

    [ForeignKey(nameof(Product))]

    public int ProductId { get; set; }

    public Product Product { get; set; }


    [ForeignKey(nameof(Image))]

    public int ImageId { get; set; }

    public Image Image { get; set; }

}

在你的Product/Category類:


public ICollection<ProductImage> ProductImages { get; set; }

然后,對(duì)于您的流暢配置:


modelBuilder.Entity<ProductImage>().HasOne(p => p.Product).WithMany(p => p.ProductImages);

modelBuilder.Entity<ProductImage>().HasOne(p => p.Image).WithMany();

對(duì)您的類別執(zhí)行相同的操作。


查看完整回答
反對(duì) 回復(fù) 2022-12-04
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)