我在我的強類型的DbContext的OnModelCreating()方法指定如下我自己的數據庫表名和模式:匿名類型「無效」的實體框架代碼例外第一OnModelCreating
modelBuilder.Entity<MyAssociativeClass>().ToTable("MYASSOCIATIVECLASS", schemaName: "MYSCHEMA");
modelBuilder.Entity<MyAssociativeClass>()
.HasKey(x => new { x.ClassA.ID, ClassBID = x.ClassB.ID });
然而,我得到以下錯誤:
The properties expression 'x => new <>f__AnonymousType1`2(ID = x.MyClassA.ID, MyClassBID = x.MyClassB.ID)' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new { t.MyProperty1, t.MyProperty2 }' VB.Net: 'Function(t) New From { t.MyProperty1, t.MyProperty2 }'.
正如你所看到的,MyClassA和MyClassB都有一個ID屬性。我在匿名類型中爲MyClassB.ID指定了一個不同的名稱,所以與使用同一個屬性名稱兩次沒有衝突。這仍然會導致問題。爲什麼它不允許這樣做?
對不起了這麼久纔回到你身邊,但是這看起來像只有這樣才能讓它工作。謝謝。 – lintmouse