2014-03-25 65 views
0

我试图种子数.NET EF无法使用迁移

context.Wishlists.AddOrUpdate(
      w => w.Name, 
      new Wishlist 
      { 
       Id = 1, 
       Name = "My First Wishlist", 
       Invitees = new List<Invitee> { 
        new Invitee { Id = 1, FirstName = "Super", LastName = "Man", Email = "[email protected]" }, 
        new Invitee { Id = 2, FirstName = "Super", LastName = "Bitch", Email = "[email protected]" } 
       }, 
       Status = WishlistStatuses.Active, 
       Items = new List<Item> { 
        new Item { Id = 1, Name = "TestItem1", Status = ItemStatuses.Active, Store = "Toys R Us", Description = "Buy the brown one", SuggestedPrice = 100 }, 
        new Item { Id = 2, Name = "TestItem2", Status = ItemStatuses.Active }, 
        new Item { Id = 3, Name = "TestItem3", Status = ItemStatuses.Reserved } 
       }, 
       Event = new Event { Id = 1, Name = "Shower", When = DateTime.Now, Location = "Here" }, 
       DateCreated = DateTime.Now 
      } 
     ); 

     // if admin user not created 
     if (!context.Users.Any(u => u.UserName == "Admin")) 
     { 
      var userStore = new UserStore<User>(context); 
      var userManager = new UserManager<User>(userStore); 
      var user = new User 
      { 
       UserName = "Admin", 
       FirstName = "John", 
       LastName = "Doe", 
       Email = "[email protected]", 
       Wishlist = context.Wishlists.FirstOrDefault(x => x.Id == 1), 
       DateCreated = DateTime.Now 
      }; 

      userManager.Create(user, "password"); 
     } 

问题种子完整的数据user.Wishlist总是空不管我做什么。用户模型从IdentityUser继承。所有其他领域都很好。这个迁移的东西我疯了。 DBInitializer非常简单。

此外,当我尝试重新更新数据库我遇到了datetime2问题,无法更新任何东西。当我注释掉种子中的所有内容时,它只会显示datetime2错误。

回答

0

我能在我的CreateTable代码中使用c.DateTime(storeType:“datetime2”,nullable:false)修复我的datetime2问题。