如何使用Entity Framework 4 Code-First定义数据库视图?我在任何地方都找不到任何关于这个的东西!
发布于 2011-05-05 05:25:22
这是因为您不能使用代码优先方法定义数据库视图。数据库视图是在现有表/函数之上使用SQL查询的数据库构造。你不能先用代码来定义这样的结构。
如果您想要查看,则必须通过执行SQL脚本手动创建它,例如,在自定义初始化器中-它将类似于this answer。请注意,如果您希望将实体映射到视图,这将不会对您有所帮助。在这种情况下,您可能必须首先删除由EF创建的表,并使用相同的名称创建视图(我没有尝试过,但它可以做到这一点)。还要注意,并不是每个视图都是可更新的,所以你很可能会得到只读的实体。
发布于 2012-06-13 07:33:13
要创建视图,需要先创建模型,然后在初始化器中使用第一行代码运行SQL语句直接针对上下文创建视图,然后在上下文中覆盖OnModelCreating并运行第二行代码以忽略模型。
context.Database.ExecuteSqlCommand(Resources.<resourcename>);
modelBuilder.Ignore<modeltype>();https://stackoverflow.com/questions/5889905
复制相似问题