我正在扩展AspNetBoilerplate
用户实体,并使用另一个主键作为Guid类型来跨区域处理SqlDataSync。我正在使用代码优先方法。
所以我用新的类扩展了AbpUser,并添加了一个Guid列并标记为主键。所以在我的迁移脚本中,它有2个用于User Table.Migration的主键。
我也更新了所有迁移脚本,无论AbpUser-用作外键的位置如何,我都在外键中添加了多列。与我在UserRole中更新的方式相同,我在新类中扩展了UserRole,为扩展的AbpUser Guid外键添加了附加列。我的迁移工作良好,但是当我通过dbcontext插入用户角色时,它具有Discriminator列和带有后缀1的另一个foreignkey
列。可以说ForeignKey列是UserId,然后插入查询除了我实际的扩展外键guid列之外还有Discriminator,UserId1列。
由于鉴别符UserId1不存在,因此Sql
抛出不可用的列。
public class CustomUserUser : AbpUser<CustomUserUser>
{
public Guid CustomId { get; set; }
public Guid? CustomDeleterUserId { get; set; }
public Guid? CustomCreatorUserId { get; set; }
public Guid? CustomLastModifierUserId { get; set; }
}
public class CustomRole : AbpRole<CustomUser>
{
public CustomRole()
{
}
public CustomRole(int? tenantId,string displayName)
: base(tenantId,displayName)
{
}
public CustomRole(int? tenantId,string name,name,displayName)
{
}
public Guid? CustomDeleterUserId { get; set; }
public Guid? CustomCreatorUserId { get; set; }
public Guid? CustomLastModifierUserId { get; set; }
}
// CustomUserRole类:
public class CustomUserRole :UserRole
{
public CustomUserRole(){}
public CustomUserRole(int? tenantId,long userId,Guid customUserId,int roleId):base(tenantId,userId,roleId)
{
this.CustomUserId = customUserId;
}
protected virtual Guid CustomUserId{ get;set; }
}
请指导我如何解决此问题。
谢谢