3

在 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技术。这意味着我想手动创建数据库和模型类,而不是通过代码生成器或数据库生成器

更新

问题解决。我在命名模型类时犯了一个错误

4

1 回答 1

5

更新 EF 模型

在此处输入图像描述

现在你可以简单地查询视图

 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/

我想它会对你有所帮助。

于 2013-05-20T07:14:49.580 回答