C#实体框架SaveChanges()不起作用

时间:2011-03-17 02:00:25

标签: c# .net entity-framework entity

运行此代码后,我在数据库中找不到任何条目。 我没有从代码中收到任何错误。

有谁知道我可能做错了什么?

PeopleEntities1 db = new PeopleEntities1();


            Person roger = new Person() 
            {  
                age = 25,
                firstname = "Roger", 
                lastname = "Rabbit", 
                location = "Canada", 
                job = "freelance", 


            };

            db.AddToPeople(roger);
            db.SaveChanges(true);

3 个答案:

答案 0 :(得分:4)

您的数据库的位置是什么?每次运行代码时,请确保不是将其复制到输出目录中。我可能在SQLite数据库中遇到了类似的问题,每次运行我的应用程序时都会将其复制到输出目录,这使我失去了在上一次运行期间所做的更改

答案 1 :(得分:1)

而不是db.AddToPeople(),请尝试使用db.People.Add()。

另外,在db变量周围包装一个using语句,以确保正确配置上下文和连接。

这适用于EF4和.NET 4.0。

假设您有一个名为People setup的列表。

希望这有帮助! :)

以下是代码:

using (PeopleEntities1 db = new PeopleEntities1())
{


            Person roger = new Person() 
            {  
                age = 25,
                firstname = "Roger", 
                lastname = "Rabbit", 
                location = "Canada", 
                job = "freelance", 


            };

            db.People.Add(roger);
            db.SaveChanges(true);
}

答案 2 :(得分:1)

首先,SaveChanges(true)是一种过时的方法,因此我不建议使用它。您是否尝试过使用SaveChanges()?就像db.SaveChanges()

一样

SaveChanges(boolean)最接近的方法是SaveChanges(SaveOptions),它使用指定的SaveOptions保留对数据源的所有更新。