【发布时间】:2020-02-27 22:11:49
【问题描述】:
我已成功创建映射到我的视图的 EF Core。如何将视图关系添加到我的其他实体类?
这是视图:
public class AppUserClaim
{
[Key]
public int ClaimId { get; set; }
public string ClaimType { get; set; }
public int AppUserId { get; set; }
public string AppUserDisplayName { get; set; }
public string FriendlyClaimName { get; set; }
}
在我的 DBContext 中
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<AppUserClaim>(appUserClaim =>
{
appUserClaim.HasNoKey();
appUserClaim.ToView("View_AppUserClaims");
});
}
我现在希望能够以这样的方式将关系添加到我的用户类,但它不起作用。
我收到此错误:
无法确定“ICollection”类型的导航属性“AppUser.AppUserClaims”表示的关系。手动配置关系,或使用“[NotMapped]”属性或使用“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略此属性。
这就是我尝试将关系添加到我的 AppUserClass 的方式:
public ICollection<AppUserClaim> AppUserClaims { get; set; }
【问题讨论】:
-
您能解释一下“将关系添加到我的其他实体类的视图”是什么意思吗?我不明白。您想将
AppUserClaim作为关系属性添加到每个类吗? -
从我的用户类中,我想访问 UserClaims 集合,如底部所示。用法等于: foreach(AppUserClaim c in appUser.AppUserClaims){
@c.ClaimType @c.ClaimId }
标签: c# entity-framework-core sql-view