首先将视图映射到MVC代码

时间:2016-08-30 11:56:26

标签: asp.net-mvc code-first ef-migrations sql-view

我在SQL中查看名为 ViewTest

enter image description here

在代码中我有这个模型

    [Table("dbo.ViewTest")]
    public class ViewTest
    {
        public int Id { get; set; }

        public int EmployeeID { get; set; }
        public string PreferredName { get; set; }
        public string EmailPrimaryWork { get; set; }
        public string GeoCoverage { get; set; }
        public string Role { get; set; }
        public bool? LeftEmpFlag { get; set; }
    }

在配置文件中:

public virtual IDbSet<ViewTest> ViewTests { get; set; }


protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new ViewConfiguration());
        }

 public class ViewConfiguration : EntityTypeConfiguration<ViewTest>
        {
            public ViewConfiguration()
            {
                this.HasKey(t => t.Id);
                this.ToTable("ViewTest");
            }
        }

我希望像ViewTests.Where(....)这样的连接,但当我尝试这样做时,我有错误数据库中已经有一个名为'ViewTest'的对象。 /strong>。这意味着实体框架尝试创建新表,我不想要这个。我只想访问此视图!

1 个答案:

答案 0 :(得分:0)

嗯,这是代码优先,所以你应该create your view in code。如果那是不可能的,那么你需要告诉EF不要通过在迁移时从Up()方法中注释该行来创建表。一旦你更新 - 数据库EF将在元数据中有它,你应该很高兴。