我一直在嘗試在過去幾周內混合成功構建網站,而今天突然間我的數據庫不會播種。我的數據庫不會先使用實體框架代碼種子
我確實添加了另一個類,並向我的DatabaseInitialiser.cs文件添加了一些更多的數據,所以我從我讀過的內容中推測出這導致了一些問題。
一切似乎運行良好,但數據庫表是空的。
我正在運行Visual Studio Express 2013 for Web。
確定這裏的代碼,讓我知道如果我忘記了任何東西。任何幫助被長久地感謝:-)
的Global.asax.cs:
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
// Initialize the product database.
Database.SetInitializer(new DatabaseInitialiser());
DatabaseInitialiser.cs:
public class DatabaseInitialiser : DropCreateDatabaseAlways<YPGOOSDataContext>
{
protected override void Seed(YPGOOSDataContext context)
{
GetCategories().ForEach(c => context.Categories.Add(c));
GetProducts().ForEach(p => context.Products.Add(p));
GetSizes().ForEach(s => context.Sizes.Add(s));
GetQuantityBreaks().ForEach(q => context.QuantityBreaks.Add(q));
GetStyles().ForEach(st => context.Styles.Add(st));
GetStocks().ForEach(sto => context.Stocks.Add(sto));
}
private static List<Category> GetCategories()
{
var categories = new List<Category> {
new Category
{
CategoryID = 1,
...etc
YPGOOSDataContext.cs:
namespace YPGOOS2.Models
{
public class YPGOOSDataContext : DbContext
{
public YPGOOSDataContext() : base("YPGOOS2") {}
public DbSet<Category> Categories { get; set; }
public DbSet<Style> Styles { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<Size> Sizes { get; set; }
public DbSet<QuantityBreak> QuantityBreaks { get; set; }
public DbSet<Stock> Stocks { get; set; }
}
}
沒有人有任何想法嗎? – skella
我已經使用上面的代碼構建了一個新的解決方案,並在Global.asax.cs文件的Application_Start方法中包括以下兩行:var ctx = new myDataContext(); ctx.Database.Initialize(假);在運行這最後一行我得到以下錯誤:類型'System.Data.DataException'的異常發生在EntityFramework.dll中,但沒有在用戶代碼中處理。附加信息:初始化數據庫時發生異常。有關詳細信息,請參閱InnerException。 InnerException是模糊的,只是說EntityFramework驗證失敗。 – skella