Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从EF视图到EF表的关系_C#_Entity Framework Core_Sql View - Fatal编程技术网

C# 从EF视图到EF表的关系

C# 从EF视图到EF表的关系,c#,entity-framework-core,sql-view,C#,Entity Framework Core,Sql View,我已成功创建映射到我的视图的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;

我已成功创建映射到我的视图的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; }
}
在我的背景下

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder
            .Entity<AppUserClaim>(appUserClaim =>
            {
                appUserClaim.HasNoKey();
                appUserClaim.ToView("View_AppUserClaims");
            });
    }
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
建模者
.Entity(appUserClaim=>
{
appUserClaim.HasNoKey();
ToView(“View_AppUserClaims”);
});
}
我现在希望能够以这样的方式将关系添加到我的用户类中,但它不起作用

我得到这个错误:

无法确定“ICollection”类型的导航属性“AppUser.AppUserClaims”表示的关系。手动配置关系,或使用“[NotMapped]”属性或使用“OnModelCreating”中的“EntityTypeBuilder.ignore”忽略此属性

这就是我试图将关系添加到AppUserClass的方式:

public ICollection<AppUserClaim> AppUserClaims { get; set; }
public ICollection AppUserClaims{get;set;}

不是100%确定,但我认为类似的方法应该可以奏效

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        var table1Entity = modelBuilder.Entity<Table1>();
        table1Entity.ToTable(nameof(Table1));
        table1Entity.HasKey(i => i.Id);
        table1Entity.Property(i => i.Id).UseSqlServerIdentityColumn();
        var view1Query = modelBuilder.Query<View1>(); // we assume this view already exists in the DB
        view1Query.ToView(nameof(View1));
        view1Query.HasOne(i => i.Table1).WithMany().HasForeignKey(i => i.Table1Id);
    }
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
var table1Entity=modelBuilder.Entity();
表1实体汇总表(名称(表1));
表1实体HasKey(i=>i.Id);
table1Entity.Property(i=>i.Id).UseSqlServerIdentityColumn();
var view1Query=modelBuilder.Query();//我们假设此视图已经存在于数据库中
ToView(nameof(View1));
view1Query.HasOne(i=>i.Table1).WithMany().HasForeignKey(i=>i.Table1Id);
}
其中,Table1是表实体,View1是视图实体


这应该在表和视图之间添加关系。

您能解释一下“将关系添加到视图到我的其他实体类”是什么意思吗?我不明白。是否要将
AppUserClaim
作为关系属性添加到每个类?我想从我的用户类访问UserClaims集合,如底部所示。用法将等于:foreach(appUser.AppUserClaims中的AppUserClaim c){@c.ClaimType@c.ClaimId}