实体框架没有添加新记录

时间:2017-03-26 12:25:14

标签: c# sql-server entity-framework linq connection-string

我有一些代码可以向数据库添加新记录,但是它似乎不会更新数据库。

private void btnNew_Click(object sender, EventArgs e)
       {
            DBEntities db = new DBEntities();
            Animal a = new Animal();
            a.AnimalName = txtNew.Text;
            db.SaveChanges();
            Debug.WriteLine(a.AnimalName);
        }

值得一提的是,我还将我的数据库的一个属性设置为'copy if newer'并且没有解决问题。我在创建模型时自动生成的连接字符串如下:

<add name="DBEntities" connectionString="metadata=res://*/AnimalModel.csdl|res://*/AnimalModel.ssdl|res://*/AnimalModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\dbAnimal.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"/>

如果有人知道解决方案,那将非常感激。谢谢。

2 个答案:

答案 0 :(得分:0)

您必须在db.animals.add(a);

之前写下db.SaveChanges();这句话

答案 1 :(得分:0)

这是因为您正在创建Animal模型的实例,但是您没有在db上下文中添加它应该是这样的

db.Model.Add(new model) 

在你的情况下它将是

 DBEntities db = new DBEntities();
  Animal a = new Animal();
  a.AnimalName = txtNew.Text;
  db.Animal.Add(a);
  db.SaveChanges();
  Debug.WriteLine(a.AnimalName);