【问题标题】:Entity Framework cannot insert data实体框架无法插入数据
【发布时间】:2021-10-31 23:14:19
【问题描述】:

我正在将此作为一个学校项目,而且我是第一次使用实体框架,所以不要太苛刻。这些是我的表/类。

public class Database : DbContext
{
    public Database() {} 

    public DbSet<Producer> Producers { get; set; } 
    public DbSet<Song> Songs { get; set; }
    public DbSet<ProducerSong> ProducerGlasbos { get; set; }
}

public class Song
{
    public int Id { get; set; }
    
    public string Title { get; set; }
    public int Length { get; set; }
    public int Views { get; set; }
}

public class Producer
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }
    
    public string name { get; set; }
    public string surname { get; set; }
    public int birth { get; set; }
}

public class ProducerSong
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }
    
    public Producer Producer { get; set; }
    public Song Songs { get; set; }
    
    public int year { get; set; }
}

当我尝试将类的新实例插入表/数据库时,只是崩溃并抛出错误

Data.Glasbas.Add(new Glasba { length = 200, Naslov = "Bolecina", views= 313});

错误截图:Look at me

感谢您的帮助。

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:
    public class Database : DbContext
    {
        public Database() { }
        public DbSet<Producer> Producers { get; set; }
        public DbSet<Song> Songs { get; set; }
        public DbSet<ProducerSong> ProducerGlasbos { get; set; }
    
        public class ProducerSong
        {
            [System.ComponentModel.DataAnnotations.Key]
            public int ProducerSongID { get; set; }
    
            public Producer Producer { get; set; }
            public Song Songs { get; set; }
            public int year { get; set; }
        }
    
        public class Song
        {
            [System.ComponentModel.DataAnnotations.Key]
            public int Id { get; set; }
    
            public string Title { get; set; }
            public int lenght { get; set; }
            public int views { get; set; }
    
            //ForeignKey
            public int ProducerSongID { get; set; }
            public ProducerSong ProducerSong { get; set; }
        }
    
        public class Producer
        {
            [System.ComponentModel.DataAnnotations.Key]
            public int Id { get; set; }
    
            public string name { get; set; }
            public string surname { get; set; }
            public int birth { get; set; }
    
            //ForeignKey
            public int ProducerSongID { get; set; }
            public ProducerSong ProducerSong { get; set; }
        }
    }
    

    【讨论】:

      【解决方案2】:

      问题出在构造函数中

      【讨论】:

      • 此答案似乎与您的原始问题不符。您的所有类都不包含构造函数。另外,这是 constructors 的普遍问题,还是只有需要 parameters 的构造函数?
      猜你喜欢
      • 1970-01-01
      • 2016-10-31
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2012-02-08
      相关资源
      最近更新 更多