2017-07-28 47 views
0

我是新的entityframework,我開始這段代碼,但我不知道爲什麼我有一個異常處理程序「System.Data。 Entity.ModelConfiguration.ModelValidationException'發生在EntityFramework.dll「in line var count = context.Albums.Count();System.Data.Entity.ModelConfiguration.ModelValidationException發生在EntityFramework.dll在C#中的CONSOL應用程序

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Data.Entity; 

    namespace entityframework1 
     { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       using (var context = new MusicAlbumContext()) 
       { 
         var count = context.Albums.Count(); 
         Console.WriteLine(count); 
         context.Albums.Add(new Album() { Name = "best", Cost = 34.43m }); 
        context.SaveChanges(); 
        Console.WriteLine(count); 
        Console.Read(); 
     } 
    } 
} 



     public class MusicAlbumContext:DbContext 
     { 
      public DbSet<Album> Albums { get; set; } 
     } 

    public class Album 
     { 
     public string Name { get; set; } 
     public decimal Cost { get; set; } 
} 

}

+0

在異常中應該有更多的信息,它是什麼意思? – DavidG

+0

我敢打賭,這與你的模特沒有ID有關。添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int id {get;組; } – KnuturO

+0

@knuturO是的,這是真的;非常感謝你;我應該在Album類中定義一個Id字段 –

回答

0

你需要做以下的過程

class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var context = new MusicAlbumContext()) 
      { 
        var count = context.Albums.Count(); 
        Console.WriteLine(count); 
        context.Albums.Add(new Album() { Name = "best", Cost = 34.43m }); 
       context.SaveChanges(); 
       Console.WriteLine(count); 
       Console.Read(); 
    } 
} 

}

public class MusicAlbumContext:DbContext 
    { 
     public MusicAlbumContext() 
     : base("connectionstring") 
    { 

    } 
    static MusicAlbumContext() 
{ 
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MusicAlbumContext>()); 
} 
     public DbSet<Album> Albums { get; set; } 
    } 

public class Album 
    { 
    public string Name { get; set; } 
    public decimal Cost { get; set; } 

}

後運行以下commnads Ë nable-migrations contextname add-migration InitialCreate update-database -verbose -fource

+0

爲什麼你認爲這樣會有什麼影響? – DavidG

相關問題