不通过实体框架模型C#将数据添加到SQL数据库

时间:2018-06-26 02:52:19

标签: c# entity-framework

可能会问这个问题,但我暂时找不到答案,请为此提供帮助。我正在尝试通过EF模型将新行添加到SQL数据库中。有什么问题吗,因为它看起来还可以,但实际上没有在表中插入任何东西。

private void Bsubmit_Click(object sender, EventArgs e)
{
        using(var db = new Models.CompanyDBEntities())
        {
            db.Clients.Add(new Client
            {
                name = nameTB.Text,
                age = Convert.ToInt32(ageTB.Text)
            });
            db.SaveChanges();
        }
}

编辑**因此,现在我添加一个更改跟踪器以查看发生了什么:

        if (db.ChangeTracker.HasChanges()){
            db.SaveChanges();
            var clients = (from c in db.Clients select c).ToList();
            string updated = "";
            foreach (var c in clients)
            {
                updated += c.Name;
            }
            MessageBox.Show(updated);
        }

消息框的确会在数据中显示当前客户端的名称以及我刚刚添加的名称。我认为这里的问题是.SaveChanges()无法正常工作。我还没有找到解决方案。

2 个答案:

答案 0 :(得分:0)

尝试将无参数构造函数添加到您的类中,然后重试,只需猜测:

public class Client
{
    public Client()
    {

    }

    public string name ...
    public int age ...
    ...
}

,并在新的时候使用括号:'new Client () {'

        db.Clients.Add(new Client()
        {
            name = nameTB.Text,
            age = Convert.ToInt32(ageTB.Text)
        });

答案 1 :(得分:0)

尝试运行 Sql Server Profiler ,并检查针对您的语句执行的查询,很可能会找到答案。