将MVC3模型映射到MSSQL 2008 View首先使用代码,然后使用数据库

时间:2013-05-20 07:06:11

标签: sql-server entity-framework ef-code-first sql-view ef-database-first

在SQL Server 2008中,我有一个这样的视图:

CREATE VIEW products AS
   SELECT a.ID, a.Name, b.ID as SubID, b.Name as SubName
   FROM main_product as a 
   INNER JOIN sub_product as b on a.ID = b.mainID

这是我的模特:

Public class Products
{
    public int ID { get; set; }
    public int Name { get; set; }
    public int SubID { get; set; }
    public int SubName { get; set; }
}

现在我如何将MVC3的视图映射到SQL Server视图?

更新

我试过这个:

 public class PartialContext : DbContext
 {       
     protected override void OnModelCreating(DbModelBuilder modelBuilder)
     {
         modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
     }

     public DbSet<Test> Test { get; set; }

     public DbSet<Products> Products { get; set; }
 }

和控制器:

public class ViewController : Controller
{
    private PartialContext db = new PartialContext();

    //
    // GET: /View/

    public ViewResult Index()
    {
        return View(db.Products.ToList());
    }
}

这项工作给了我一个错误:“无效的对象名称'dbo.Products'。”

编辑2

只是澄清一下。我想同时使用code firstdatabase first技术。这意味着我想手动创建数据库和模型类,而不是通过代码生成器或数据库生成器

更新

问题解决。我在命名模型类

时犯了一个错误

1 个答案:

答案 0 :(得分:5)

更新EF模型

enter image description here

现在只需查询视图

即可
 using (var ctx = new YourDBContext())
  {
    var result = from t in ctx.product
                 select new Products{
                   ID= ctx.ID,
                   Name=ctx.Name
                 };    
  }

以下链接的更多信息

http://www.mssqltips.com/sqlservertip/1990/how-to-use-sql-server-views-with-the-entity-framework/

我认为它会对你有所帮助。