gpt4 book ai didi

c# - 多对多映射未创建正确的表

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

我有一个模板

public class Template
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Category> Categories { get; set; }
public virtual Template RelatedTemplate { get; set; }
public virtual Field RelatedTemplatePrimaryField { get; set; }
public virtual ICollection<Field> Fields { get; set; }
}

还有一个Field

public class Field
{
public int Id { get; set; }
public string Name { get; set; }
public int Min { get; set; }
public int Max { get; set; }
public bool AllowEmpty { get; set; }
public bool IsCollection { get; set; }
public virtual ICollection<Template> Templates { get; set; }
}

问题是它没有创建多对多关系,它只是在字段表上添加了一个 FK,我想要一个多对多关系

Fields ICollection<Field> Fields

ICollection<Template> Templates

编辑:如果我删除

public virtual Template RelatedTemplate { get; set; }
public virtual Field RelatedTemplatePrimaryField { get; set; }

有效...有什么想法吗?

最佳答案

在这种情况下,您必须帮助 EF 正确识别您的关系。您可以通过数据注释来完成:

[InverseProperty("Fields")]
public virtual ICollection<Template> Templates { get; set; }

或通过 fluent-API:

modelBuilder.Entity<Template>()
.HasMany(t => t.Fields)
.WithMany(f => f.Templates);

关于c# - 多对多映射未创建正确的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205252/

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