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
...