強く型付けされたDbContextのOnModelCreating()メソッドで、次のように独自のデータベーステーブル名とスキーマを指定しています。
modelBuilder.Entity<MyAssociativeClass>().ToTable("MYASSOCIATIVECLASS", schemaName: "MYSCHEMA");
modelBuilder.Entity<MyAssociativeClass>()
.HasKey(x => new { x.ClassA.ID, ClassBID = x.ClassB.ID });
ただし、次のエラーが発生します。
プロパティ式'x=> new <> f__AnonymousType1`2(ID = x.MyClassA.ID、MyClassBID = x.MyClassB.ID)'は無効です。式はプロパティを表す必要があります:C#:'t => t.MyProperty' VB.Net:'Function(t)t.MyProperty'。複数のプロパティを指定する場合は、匿名タイプを使用します。C#:'t => new {t.MyProperty1、t.MyProperty2}' VB.Net:'Function(t)New From {t.MyProperty1、t.MyProperty2}'。
ご覧のとおり、MyClassAとMyClassBの両方にIDプロパティがあります。匿名タイプでMyClassB.IDに別の名前を指定しているので、同じプロパティ名を2回使用しても競合は発生しません。しかし、これでも問題が発生します。なぜこれを許可しないのですか?