Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SaveChanges方法在EntityFramework中如何工作?_C#_Entity Framework_Savechanges - Fatal编程技术网

C# SaveChanges方法在EntityFramework中如何工作?

C# SaveChanges方法在EntityFramework中如何工作?,c#,entity-framework,savechanges,C#,Entity Framework,Savechanges,我正在使用EntityFramework和PostgreSQL开发一个桌面应用程序,由于ef不处理db权限,我想知道SaveChanges()是否会更新整行还是只更新修改的列?(行更新后删除外键的问题)EntityFramework dbContext savechanges将尝试填充orm映射项的更改状态 对EF样品进行测试 根据您的具体情况,实现可能会有所不同。SaveChanges()方法用于保存对数据库上下文所做的所有更改,这些更改尚未推送到数据库,换句话说,将自上次调用SaveChan

我正在使用EntityFramework和PostgreSQL开发一个桌面应用程序,由于ef不处理db权限,我想知道
SaveChanges()
是否会更新整行还是只更新修改的列?(行更新后删除外键的问题)

EntityFramework dbContext savechanges将尝试填充orm映射项的更改状态

对EF样品进行测试

根据您的具体情况,实现可能会有所不同。

SaveChanges()方法用于保存对数据库上下文所做的所有更改,这些更改尚未推送到数据库,换句话说,将自上次调用SaveChanges()以来对数据库上下文所做的所有更改保存在数据库中


该方法继续并将数据保存为上下文中当前可用的数据,这意味着如果对象模型的属性设置为NULL,它将更新整行,而不仅仅是更改的列,框架将尝试在数据库的映射列中保存NULL。

保存对哪个类的更改?这取决于您的实现和您使用的EF提供程序。EF允许您将单个列设置为modified,而一些提供程序实际上只会在update语句中设置这些列。