在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 first
和database first
技术。这意味着我想手动创建数据库和模型类,而不是通过代码生成器或数据库生成器
更新
问题解决。我在命名模型类
时犯了一个错误答案 0 :(得分: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/
我认为它会对你有所帮助。