EF Core:视图的导航属性

时间:2020-06-24 13:13:09

标签: c# sql-server .net-core entity-framework-core

我试图使导航属性在我拥有和维护的对象与另一方控制的视图之间工作。我使用的是MS SQL Server数据库。

我有2个模型

public class Trajectory
{
    public Guid Id { get; set; }
    //Some more data
    public Contact Contact { get; set; }
    public Guid ContactId { get; set; }
}
public class Contact
{
     public Guid Id { get; set; }
     public string FullName { get; set; }
     public string FirstName { get; set; }
     public string LastName { get; set; }
     public List<Trajectory> Trajectories {get;set;}
}

第一个是创建并随实体一起迁移的模型。第二个是我无法控制的外部视图。

所以我在模型构建器中做到了这一点

  modelBuilder.Entity<Contact>()
            .HasNoKey()
            .ToView("SomeView");

对于我的其他实体:

  builder.HasOne(e => e.Contact)
            .WithMany(e => e.Trajectories)
            .HasForeignKey(e => e.ContactId );

当我运行此迁移时,它以空指针失败。当我从第一部分中删除HasNoKey()时,我进行了迁移。当我运行update-database命令时,出现以下错误:

外键'FK_Trajectories_SomeView_ContactId'引用了不是用户表的对象'SomeView'。 无法创建约束或索引。查看先前的错误。

我迷失了如何为视图创建导航属性?

0 个答案:

没有答案