4
我有一個MVC4的Web API項目表的,我想創建並首先使用EF 6.0.2代碼管理數據庫。實際上,解決方案需要四個項目,即實體框架代碼先不要下創建的Visual Studio 2012使用VS 2012
- OnlineShop.Application(用戶界面)
- OnlineShop.Model專用於POCO類只
- OnlineShop.Test單元測試和
- OnlineShop.Core具有的UnitOfWork,GenericRepository和 DatabaseContext類
每一個提到的項目包括保持相同的連接爲網絡的一個app.config。配置。
問題:運行項目(在調試模式下)後,數據庫就會在服務器資源管理器(Visual Studio 2012)中顯示時創建。但是,它沒有表!
數據庫上下文類也是爲以下幾點:
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("OnlineShopDb")
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseContext, Configuration>());
}
//public static void InitializeDatabase()
//{
// using (var context = new DatabaseContext())
// {
// context.Database.CreateIfNotExists();
// Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseContext, Configuration>());
// }
//}
public DbSet<Person> Persons { get; set; }
public DbSet<Customer> Customers { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<Audit> Audits { get; set; }
public DbSet<RoleGroup> RoleGroups { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<UserInRole> UserInRoles { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderDetail> OrderDetails { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<ProductCategory> ProductCategories { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Entity<Person>().Map<User>(c => c.Requires("Discriminator").HasValue("User"));
}
}
我已經網上衝浪了這麼多,找到了許多關於EF代碼第一種方法的文章ANS樣本但遺憾的是無法處理這個不好的問題!
如果有人能幫助我,我將不勝感激。
你嘗試過用C#代碼訪問你的數據庫?像db.products.tolist()?的EntityFramework建立數據庫,直到你試圖獲取或設置一些數據 –
以及..不是真的只是想現在可能是它幫助.. – Ali
爲我貼我的答案 –