Entity framework 实体框架扩展批处理更新方法如何处理默认值?

Entity framework 实体框架扩展批处理更新方法如何处理默认值?,entity-framework,entity-framework-6,entity-framework-extended,Entity Framework,Entity Framework 6,Entity Framework Extended,我正在使用Entity Framework Extended执行批量更新,就像下面的官方文档()中的示例一样: 它是有效的,但我想知道它的内部工作原理。它如何处理任务对象的默认值。假设它有一个名为MyProperty的属性,它是一个默认为0的int。当一个任务对象被初始化时,它的MyProperty值将具有默认值0。Entity Framework Extended如何区分默认值为0的MyProperty,或者如果我试图将所有匹配对象的MyProperty设置为默认值0,例如new Task{S

我正在使用Entity Framework Extended执行批量更新,就像下面的官方文档()中的示例一样:

它是有效的,但我想知道它的内部工作原理。它如何处理
任务
对象的默认值。假设它有一个名为
MyProperty
的属性,它是一个默认为
0
int
。当一个
任务
对象被初始化时,它的
MyProperty
值将具有默认值
0
。Entity Framework Extended如何区分默认值为0的
MyProperty
,或者如果我试图将所有匹配对象的
MyProperty
设置为默认值0,例如
new Task{StatusId=2,MyProperty=0}
因为创建的
任务
对象在每种情况下都是完全相同的?

当您传递以下信息时:

.Update(t => new Task { StatusId = 2 });

您根本没有创建
任务
对象。您正在传递一个批处理更新程序正在解析(并且根本不执行)的表达式。
新任务{StatusId=2}
永远不会执行。

哦,它是表达式的一部分,而不是对象。是的,这就是为什么要传入lambda(
t=>
),而不仅仅是
新任务{…}
.Update(t => new Task { StatusId = 2 });