我可以使用 EF 中的 ExecuteUpdate 从 select 进行更新吗?

Hrk*_*kkl 2 c# entity-framework entity-framework-core

在 EF7 中,有一个新的ExecuteUpdate函数可以对表进行更新,而无需先从服务器检索数据。是否可以使用此方法以任何方式使用另一个表中的数据进行选择更新?更具体地说,我可以在 EF 中表达这个 SQL:

UPDATE
    Table_A
SET
    Table_A.col1 = Table_B.col1,
    Table_A.col2 = Table_B.col2
FROM
    Some_Table AS Table_A
    INNER JOIN Other_Table AS Table_B
        ON Table_A.id = Table_B.id
WHERE
    Table_A.col3 = 'cool'
Run Code Online (Sandbox Code Playgroud)

Svy*_*liv 6

以下查询使用连接表中的值更新表。

var query = 
    from a in context.TableA
    join b in context.TableB on a.id equals b.id
    where a.col3 == "cool"
    select new { a, b };

query.ExecuteUpdate(s => 
    s.SetProperty(x => x.a.col1, x => x.b.col1)
     .SetProperty(x => x.a.col2, x => x.b.col2)
);
Run Code Online (Sandbox Code Playgroud)