如何使用Entity Framework 4 Code-First定义数据库视图?我在任何地方都找不到任何相关的东西!
那是因为您无法使用代码优先方法定义数据库视图.数据库视图是数据库构造,它在现有表/函数之上使用SQL Query.您不能首先使用代码定义此类构造.
如果你想要查看,你必须通过执行CREATE VIEW
SQL脚本手动创建它,例如在自定义初始化程序中 - 它将类似于这个答案.请注意,如果要将实体映射到视图,这对您无济于事.在这种情况下,您可能必须首先删除由EF创建的表并创建具有相同名称的视图(我没有尝试它,但它可以做到这一点).另请注意,并非每个视图都是udpatable,因此您很可能会获得只读实体.
要创建模型,然后在初始化程序中运行SQL语句以使用第一行代码直接创建视图,然后在上下文中重写OnModelCreating并运行第二行代码以忽略该模型.
context.Database.ExecuteSqlCommand(Resources.); modelBuilder.Ignore ();