2017-10-12 5 views
0

이 작업을 수행하는 방법은 무엇입니까 DB에 다른 AbpPermissions 테이블을 생성하지 않아도됩니다. 여기 재정의 속성 나는 것은이 클래스가 프레임 워크에 걸쳐 사용되는 추상적 인 <strong>AbpRoleBase 클래스</strong>에 선언 된 것입니다 추가 속성을 <strong>RolePermissionSetting</strong> 클래스를 확장하기 위해 노력하고있어

코드의 조각 :

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

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

** AbpRoleBase **를 확장하거나 ** RolePermissionSetting **을 확장 하시겠습니까, 아니면 ** AbpPermissions **로 뭔가를하고 있습니까? 당신은 모순되는 방식으로 모두 3을 언급합니다. – aaron

+0

RolePermissionSetting을 확장하려고 시도했지만, 모든 핵심 클래스가 새로운 클래스를 사용하도록 강제하는 방법을 찾지 못했습니다. AbpRoleBase를 재정의 (override)하는 것은 직접적으로 해결책이 될 수 있습니다. 내 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

, 나는 내 자신과 그 클래스를 대체 할 경우, EF 생성 것을 두려워 재정 AbpRoleBase AbpRole (ZeroModule)에서 내 역할 클래스 상속 모델의 새 테이블을 만든 다음 두 개의 역할 테이블을 갖습니다.

EF는 새 테이블을 생성하지 않지만 Discriminator 열을 추가합니다.

AbpRole은 대체하지 않으므로 AbpRoleBase을 구현합니다. Permissions 속성을 Role.cs에 안전하게 재정의 할 수 있습니다.