這裏的第一個問題,即使我現在已經瀏覽堆棧多年了。強制HasMany()使用關聯表
我有一個實體框架和遷移的問題,更準確地說是映射。 我很清楚所有關於多到多,一到多,關聯表之類的東西,但我還沒有來翻過這一特定問題的解決方案的問題:
這些都是我的POCO:
public class A
{
public virtual long Id {get; set;}
public virtual ICollection<B> B {get; set;}
}
public class B
{
public virtual long Id {get; set;}
// Not relevant stuff ...
}
我想迫使映射給我一個關聯表,東西,可能是這樣的:
----------- ----------- -----------
| TABLE A | | TABLE AB| | TABLE B |
----------- ----------- -----------
| ID | | FK_A_ID | | ID |
----------- | FK_B_ID | -----------
-----------
我的第一反應是使用這種映射類型:
modelBuilder.Entity<A>()
.HasMany(x => x.B)
.WithMany()
.Map(x =>
{
x.ToTable("AB");
x.MapLeftKey("Id");
x.MapRightKey("Id");
});
不幸的是,這並沒有給我所需的數據庫映射,因爲它正在引用B.Id.的表A中創建一個外鍵。另外,我不想在B班有A的房產。有關信息,目標數據庫是SqlServer。
有沒有適當的方法來做到這一點?
注意:我不是英語母語的人,如果我犯了錯誤,請原諒我。
請參見[56,「問題‘’包括在他們的頭銜?」標籤(http://meta.stackexchange.com/questions/19190/應該提問題包括標籤在他們的標題),其中共識是「不,他們應該不」! –