首先将视图映射到 MVC 代码

Posted

技术标签:

【中文标题】首先将视图映射到 MVC 代码【英文标题】:Mapping View To MVC Code first 【发布时间】:2016-08-30 11:56:25 【问题描述】:

我在 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”的对象。。这意味着实体框架尝试创建新表,我不想要这个。我只想访问这个视图!

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于首先将视图映射到 MVC 代码的主要内容,如果未能解决你的问题,请参考以下文章

Google-GSON 的 Spring MVC 映射视图?

Google-GSON 的 Spring MVC 映射视图?

带有现有存储库的 ASP.NET mvc 脚手架并将 POCO 映射到视图模型

将表数据映射到 asp .Net MVC 中的 ViewModel 列表

ASP.Net MVC 路由映射

ASP.NET MVC 4 (一)路径映射