2017-10-12 249 views
0

我試圖延長RolePermissionSetting類附加屬性的一點是,這個類是抽象AbpRoleBase類,它是整個框架中使用申報是有辦法做到這一點而不會在數據庫中生成不同的AbpPermissions表。覆蓋屬性

下面是一段代碼:

public abstract class AbpRoleBase : FullAuditedEntity<int>, IMayHaveTenant{ 

.. 
public virtual ICollection<RolePermissionSetting> Permissions { get; set; } 
} 
+0

您是否正在重寫** AbpRoleBase **或正在擴展** RolePermissionSetting **或正在爲** AbpPermissions **做些事情?你以矛盾的方式提及所有3個。 – aaron

+0

我試圖擴展RolePermissionSetting,但我沒有找到強制所有核心類使用新的方法。直接重寫AbpRoleBase可能是一個解決方案,因爲我的Role類繼承自重寫AbpRoleBase的AbpRole (ZeroModule),恐怕如果我用自己的類替換該類,EF將在模型中生成一個新表,然後我將有兩個角色表。 –

+0

EF不會生成一個新表,但添加一個'Discriminator'列,這應該沒問題。 'AbpRole'實現,而不是覆蓋'AbpRoleBase'。您可以安全地覆蓋[Role.cs]中的'Permissions'屬性(https://github.com/aspnetboilerplate/module-zero-core-template/blob/63f6e3b6147b6df7a08b09a53dad562c57dac17c/aspnet-core/src/AbpCompanyName.AbpProjectName.Core/Authorization /Roles/Role.cs)。 – aaron

回答

0

我從AbpRole(ZeroModule)角色類繼承其覆蓋AbpRoleBase,我怕,如果我用我自己的替換類,EF將產生模型中的新表,然後我將有兩個角色表。

EF將不會生成一個新表,但會添加一個Discriminator列,這應該很好。

AbpRole實現,而不是覆蓋,AbpRoleBase。您可以安全地覆蓋Role.cs中的Permissions屬性。