我想在EF中創建多對多關係。通常我會使用InverseProperty屬性,但是,在這種情況下:多對多沒有反轉屬性
Role (Id, Name, ICollection<Privilege>)
Privilege (Id, Name)
我沒有反轉屬性。如何告知EF可以在多個角色中使用特權?
[當前EF在Privilege表中放入Role_Id列。這不是我想要的:-)]
編輯:我不想使用Fluent API,我正在尋找一個屬性。
我想在EF中創建多對多關係。通常我會使用InverseProperty屬性,但是,在這種情況下:多對多沒有反轉屬性
Role (Id, Name, ICollection<Privilege>)
Privilege (Id, Name)
我沒有反轉屬性。如何告知EF可以在多個角色中使用特權?
[當前EF在Privilege表中放入Role_Id列。這不是我想要的:-)]
編輯:我不想使用Fluent API,我正在尋找一個屬性。
modelBuilder.Entity<Role>()
.HasMany(r => r.Privileges)
.WithMany() // <- no parameter = no inverse property
.Map(m =>
{
m.ToTable("RolePrivileges");
m.MapLeftKey("RoleId");
m.MapRightKey("PrivilegeId");
});
我已經看到你不想使用Fluent API,但它不可能使用數據標註。使用註釋映射選項只是Fluent API選項的一個子集,並且這是一種缺少具有數據註釋的映射選項的情況。您需要在這裏使用Fluent API。
嗯,那很糟糕。所以我有多個點,我已經定義了我的數據庫結構......所以只使用FluentAPI是「正常的」,並且根本沒有任何屬性? CodeFirst根本就沒有用過嗎? – 2013-04-20 14:14:23
@ D.R .:是的,對於任何不僅僅是簡單的模型而言,由於數據註釋的侷限性,您通常最終會遇到Fluent API。我專門使用它。但這是一個品味問題。您可以很好地混合註釋(它們不太詳細,寫得更快)和Fluent API。 – Slauma 2013-04-20 14:23:38
可惜,謝謝你的答案。你是否偶然知道他們是否打算在EF的未來更新中使註釋「相等」? – 2013-04-20 14:26:38
權限(Id,Name,ICollection)? –
2013-04-20 13:56:35
正如我所說,我不想在我的模型類中擁有逆向屬性。 – 2013-04-20 13:57:33