2017-07-28 45 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

相关问题