如何解决一对多的关系并没有达到我所期望的
在一个产品可以有多个类别的情况下,我尝试使用代码优先来创建它,我有一个产品模型,其中包含一个像这样的类别集合:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Category> Categories { get; set; }
}
我的类别看起来像:
public class Category
{
public Category(CategoryEnum @enum)
{
Id = (int)@enum;
Name = @enum.ToString();
}
public Category() { }
[Key,DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Name { get; set; }
public static implicit operator Category(CategoryEnum @enum) => new Category(@enum);
public static implicit operator CategoryEnum(Category category) => (CategoryEnum)category.Id;
}
创建迁移然后更新数据库不会为此创建一个新表来将 2(产品和类别)连接在一起。我希望有一个带有 ProductId
和 CategoryId
的新表,但事实并非如此。相反,它只是在 Category 表中创建一个 ProductId
?
如何让 EF 创建一个将这两个连接在一起的表,而无需创建新的 DbSet<T>
解决方法
应该是这样的。
示例:
产品 1 鸡肉
类别 1 肉类 idProduct = 1
类别 2 健康 idProduct = 1
等等...
对于一对多的关系,您不需要另一个表。表格只对多对多有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。