我在SQL中查看名为 ViewTest 。
在代码中我有这个模型
[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>。这意味着实体框架尝试创建新表,我不想要这个。我只想访问此视图!
答案 0 :(得分:0)
嗯,这是代码优先,所以你应该create your view in code。如果那是不可能的,那么你需要告诉EF不要通过在迁移时从Up()方法中注释该行来创建表。一旦你更新 - 数据库EF将在元数据中有它,你应该很高兴。