Context.SaveChanges()不起作用

时间:2014-07-28 12:39:38

标签: c# entity-framework

我有点困惑。

我有这个代码:

 using(Test_ASLEntities context = new Test_ASLEntities())
            { 
                List<Belege> kopieren_SQL_List = new List<Belege>();

                kopieren_SQL_List = (from b in context.Beleges
                                    select b).ToList();

                var kopieren_SQL = new Belege
                {
                    Plz = 1000,                   
                    Nachname = "Name",
                    Vorname = "Name",
                };
                kopieren_SQL_List.Add(kopieren_SQL);
                context.SaveChanges();
            }

            Console.ReadLine();

我不明白,为什么它不能保存m数据库中的更改?!

上下文来自.edmx datamodel权限。

有人能告诉我在那里做错了什么吗? (我只是将大部分代码从我创建的其他程序中复制了很长一段时间,并且它工作正常。这更令人困惑)

编辑:NVM,看到了我的错误。 Sry :(

3 个答案:

答案 0 :(得分:4)

使用context.Beleges.Add(kopieren_SQL)代替kopieren_SQL_List.Add(kopieren_SQL)

答案 1 :(得分:4)

您没有将新的Belege添加到您的datacontext。

尝试context.Beleges.Add(kopieren_SQL)

答案 2 :(得分:3)

因为必须使用DbSet对象来表示新对象已添加到EF
来自 MSDN 添加方法

Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called.

 var kopieren_SQL = new Belege
                {
                    Plz = 1000,                   
                    Nachname = "Name",
                    Vorname = "Name",
                };
//EF framework will add a plural S to represents an object collection 
context.Beleges.Add(kopieren_SQL); 
//here  commit your changes to the DB 
context.SaveChanges();