gpt4 book ai didi

c# - 只有 1 个主键的 EntityFramework 链接表

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:57 24 4
gpt4 key购买 nike

所以,我有一件衣服:

public class Garment
{
public int Id { get; set; }
public string Slug { get; set; }

public Kit Kit { get; set; }
public IList<Path> Paths { get; set; }
}

和字体:

public class Font
{
public int Id { get; set; }
public string Name { get; set; }
public string Slug { get; set; }

public IList<Garment> Garments { get; set; }
}

一个服装可以有一个字体,一个字体将有 0 到许多服装。我试图通过这样做在 EF 中弥补这一点:

// Map the GarmentFonts table
modelBuilder.Entity<Font>()
.HasMany(m => m.Garments)
.WithMany()
.Map(m =>
{
m.MapLeftKey("FontId");
m.MapRightKey("GarmentId");
m.ToTable("GarmentFonts");
});

但它使FontIdGarmentId 成为主键。我真的认为它应该只将 GarmentId 作为主键来阻止系统允许一件衣服使用多种字体。有谁知道如何设置 EF 以适应我的场景?

最佳答案

你需要这样的东西:

public class Garment {
public int Id { get; set; }
public string Slug { get; set; }

public Kit Kit { get; set; }
public IList<Path> Paths { get; set; }

public Font Font {get; set;}
}

配置:

modelBuilder.Entity<Font>()
.HasMany(m => m.Garments)
.WithOptional(y => y.Font);

这里不需要链接表。 FK 在 Garments 表中。

关于c# - 只有 1 个主键的 EntityFramework 链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30125829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com