【发布时间】:2013-01-06 11:33:56
【问题描述】:
目前我正在使用 MVC 4 和实体框架代码优先方案构建一个 Web 应用程序。
在我的应用程序的主要结构中,我有一个Dbcontext(BlogDB) 来管理一些Blog 类。它工作正常,因为它在数据库中创建了我需要的所有表。然后我创建了一个区域来托管在线商店。我的想法是创建一个单独的DbContext 类(OnlineStoreDB)来处理仅用于在线商店的类。
我的问题是一旦OnlineStoreDB 被触发,实体框架不仅为OnlineStore 创建了表,而且还删除了旧表。
我的问题是:
- 如果您知道保留旧表的方法吗?
- 究竟如何在一个应用程序中管理多个 EF 上下文类?
代码:
public class BlogDB : DbContext
{
public BlogDB ()
: base("DBConnection")
{
Database.SetInitializer(new BlogInitializer());
}
public DbSet<Blog> Blogs { get; set; }
public DbSet<Author> Authors { get; set; }
public DbSet<Comment> Comments { get; set; }
}
public class OnlineStoreDB : DbContext
{
public OnlineStoreDB() :
base("DbConnection")
{
Database.SetInitializer(new OnlineStoreInitializer());
}
public DbSet<Order> Orders { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<User> Users { get; set; }
}
【问题讨论】:
-
Code-First 将是一个挑战。但是为什么你需要上下文?您不能在一个 contxt 中创建所有 POCO 吗?如果没有,我会推荐一个工厂对象。祝你好运!
标签: asp.net-mvc entity-framework asp.net-mvc-4 ef-code-first asp.net-mvc-areas