【问题标题】:DbContext.SaveChanges() always assigns value of id column to zeroDbContext.SaveChanges() 始终将 id 列的值分配为零
【发布时间】:2014-11-05 11:43:32
【问题描述】:

我正在尝试使用流利的 api 在 c# 中开发一个简单的应用程序。我想在我的 Musteri 表中插入一条记录(Musteri 在土耳其语中是客户的意思)。

我的 musteri 课程在 ModelRepository.cs 中:

public class Musteri // It means Customer
{
    [Key]
    public int MusteriId  { get; set; }// It Means CustomerId
    public string MusteriAdi { get; set; } // It means CustomerName
}

以下代码在form1.cs下:

public class CustomerContext : DbContext
{
    public CustomerContext()
        : base("MySqlConnString") // I'm using MySql Database
    {
    }

    public DbSet<Musteri> MusteriTb { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        base.OnModelCreating(modelBuilder);
    }
}

我正在使用以下代码插入记录我的 Musteri(客户)表

CustomerContext context = new CustomerContext();
Musteri MusteriRow = new Musteri();
MusteriRow.MusteriId = Convert.ToInt32(TextBox1.Text);
MusteriRow.MusteriAdi = TexBox2.Text;
context.MusteriTb.Add(MusteriRow);

例如,我在 TextBox1 中写入“9”。我正在使用断点 MusteriRow.MusteriId 值观看。直到这里 MusteriRow.MusteriId = 9。

context.SaveChanges() 命令 MusteriRow.MusteriId 之后为 0(零)。始终程序将 MusteriRow.MusteriId 的值分配为零。我怎么解决这个问题。请帮帮我。

【问题讨论】:

  • 你能显示将对象添加到上下文中的代码,然后调用 context.SaveChanges() 吗?字符串值是否保存正确?
  • 你有实体的地图吗?你想让 id 是 9 吗?它在数据库中的价值是什么? MusteriId 是否自动递增?
  • id 最有可能设置为从数据库生成的 id。奇怪的是你每次都得到一个 0。

标签: c# dbcontext


【解决方案1】:

我解决了这个问题。我改变了我的模型类:

public class Musteri
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int MusteriId { get; set; }
    public string MusteriAdi { get; set; }
}

我从这个链接找到了答案: Getting "Cannot insert the value NULL into column" when trying to save with .Add() method using DbContext . Please check my POCO's and save method

【讨论】:

  • 我们中的一些人不允许这样做,因为当我们从数据库中对代码进行逆向工程时,每次数据库更改都会覆盖我们的代码。
猜你喜欢
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多