C# 使用实体框架重用多对多表
您好,我有以下型号:C# 使用实体框架重用多对多表,c#,entity-framework,C#,Entity Framework,您好,我有以下型号: public class Product { public Guid Id { get; set; } public String Title { get; set; } } public class Category { public Guid Id { get; set; } public String Name { get; set; } } public class Language { public Guid I
public class Product
{
public Guid Id { get; set; }
public String Title { get; set; }
}
public class Category
{
public Guid Id { get; set; }
public String Name { get; set; }
}
public class Language
{
public Guid Id { get; set; }
public String Title { get; set; }
}
语言与产品和类别有着多对多的关系。传统的方法是创建Language\u Product
表和Language\u Category
表,但我想知道是否可以创建一个表,这样我就不会为与我的语言有多对多关系的其他模型复制多对多表。如下所示(请记住它们的ID是相同的数据类型):
LanguageId-GroupId
------- ----
a2b4a2d1255540aeb6c41e4309e14a80 4cf16dd0baa9424e89f7bb43deefd0cc对于多对多关系,您不应该只有一个表-这将破坏您的数据库模型,并且您将无法正确实现数据完整性,即,您将无法使用外键
更好的做法是,为类别和标题等数据创建一个表,并添加一列以了解记录的类型。然后,还将有一个多对多表
LanguageId GroupId
------- ----
a2b4a2d1255540aeb6c41e4309e14a80 4cf16dd0baa9424e89f7bb43deefd0cc <-- Product
95870ac828c84937baab63ad39b4f420 4cf16dd0baa9424e89f7bb43deefd0cc <-- Product
95870ac828c84937baab63ad39b4f420 55c884375d304f958fa6b4dde1d29559 <-- Category
...