相互に関連するエンティティはほとんどありません(サンプルのみ):
------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.)
そして、エンティティの各行に多くの名前(エイリアス)を設定し、それを他の1つのテーブルに格納したいと思います。新しいエンティティ名を作成し、次に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);
これは、次のように見える1つのテーブルを作成します。
[Id],
[Name],
[User_Id],
[Type_Id],
[Job_Id],
[Company_Id]
(どうすれば多くの_Idを無効にすることができますか?)
また、カスケード削除を設定しようとすると、「。サイクルまたは複数のカスケードパスが発生する可能性があります」という例外がスローされます。
modelBuilder.Entity<User>()
.HasMany(pt => pt.Names)
.WithOptional()
.WillCascadeOnDelete(true);
エンティティフレームワークを使用してこれを行うための最良の方法は何ですか?