2013-08-23 93 views
-1

以前我有一個實體數據庫的工作。我把它刪除了,出於匆忙,所以我再次運行我的程序(認爲它應該像以前那樣重新創建和重新填充數據庫)。然而,這一次我有一個奇怪的錯誤: System.InvalidOperationException:序列包含這行代碼中沒有匹配的元素序列不包含匹配元素實體種子錯誤

在我的「SampleData.cs」文件(位置在那裏種子數據來源於):

52:    new List<Card> 

任何想法這裏發生了什麼?

應用程序啓動方法:

protected void Application_Start() 
    { 
     System.Data.Entity.Database.SetInitializer(new 
      GoStopPrimer.Models.SampleData()); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 
    } 

GoStopEntities.cs

public class GoStopEntities : DbContext 
{ 
    public DbSet<Card> Cards { get; set; } 
    public DbSet<CardType> CardTypes { get; set; } 
    public DbSet<Month> Months { get; set; } 
    public DbSet<Special> Specials { get; set; } 
} 

Card.cs型號

public class Card 
{ 
    public int CardId { get; set; } 
    public int CardTypeId { get; set; } 
    public int MonthId { get; set; } 
    public string Name { get; set; } 
    public string CardArtUrl { get; set; } 
    public virtual CardType CardType { get; set; } 
    public virtual Month Month { get; set; } 
    public virtual Special Special { get; set; } 
} 

SampleData.cs

的片段
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 

namespace GoStopPrimer.Models 
{ 
    public class SampleData : DropCreateDatabaseIfModelChanges<GoStopEntities> 
    { 
     protected override void Seed(GoStopEntities context) 
     { 
      var cardTypes = new List<CardType> 
      { 
       new CardType { Name = "kwang" },  
      }; 

      var months = new List<Month> 
      { 
       new Month { Name = "January" },   
      }; 

      var specials = new List<Special> 
      {  
       new Special { Name = "None" },  
      }; 

      new List<Card> 
      { 
       new Card { Name = "Pine", CardType = cardTypes.Single(c => c.Name == "kwang"), Month = months.Single(m => m.Name == "January"), CardArtUrl = "/Content/Images/Cards/jan1.gif", Special = specials.Single(s => s.Name == "None") }, 
       new Card { Name = "Willow/Rain", CardType = cardTypes.Single(c => c.Name == "kwang"), Month = months.Single(m => m.Name == "January"), CardArtUrl = "/Content/Images/Cards/dec4.gif", Special = specials.Single(s => s.Name == "None") }, 
      }.ForEach(c => context.Cards.Add(c));  
     } 
    } 
} 
+0

你已經在這裏發佈了很多代碼,這意味着任何回答問題的人都需要瀏覽並理解你的問題。你是否能夠縮小這個問題呢? –

+0

我實際上認爲我把代碼縮短了很多@。@因爲我是使用實體的新手,我不確定是否可能我在語法上丟失了某些東西?如果我試圖通過新列表將卡插入到數據庫中可能有問題?如果它根本不播種?有沒有更好的方法可以使用我的文件來播種這些數據?我真的被卡住了,我甚至不知道這個錯誤消息的真正含義。我將所有其他代碼都顯示爲參考,以便有人想知道我是如何在我的Application_Start方法中設置的,我的卡類如何看起來如此等等。 –

+1

問題很可能出現在「Single」調用中結束。檢查你在'Single'謂詞中搜索的名稱中的拼寫錯誤。它們全部與*添加到列表中的名稱完全匹配*嗎? – Slauma

回答

0

「我忘了添加一個新的」特殊「字段」。

相關問題