我有几个相互关联的实体(只是一个示例):
------User----------
->(One) Type
->(One) Company
- Name
------Type----------
->(Many) User
- Name
------Job------------
->(Many) User
->(Many) Type
- Name
------Company-----
->(Many) Users
->(Many) Job
- Name
(Name it's just a text.)
我想为每一行实体有许多名称(别名)并将其存储在另一个表中。我创建了新的实体名称并接下来配置 EF:
modelBuilder.Entity<User>().HasMany(e => et.Names);
modelBuilder.Entity<Type>().HasMany(e => et.Names);
modelBuilder.Entity<Job>().HasMany(e => et.Names);
modelBuilder.Entity<Company>().HasMany(e => et.Names);
它创建了一个看起来像这样的表:
[Id],
[Name],
[User_Id],
[Type_Id],
[Job_Id],
[Company_Id]
(我可以如何避免许多 _Ids 吗?)
当我尝试设置级联删除时,它会抛出异常“。可能导致循环或多个级联路径”。
modelBuilder.Entity<User>()
.HasMany(pt => pt.Names)
.WithOptional()
.WillCascadeOnDelete(true);
使用实体框架执行此操作的最佳方法是什么?