linq - 如何在 linq 中删除和重新插入实体?

标签 linq linq-to-sql insert submit

删除实体后(未提交更改),我在将实体插入 linq 时遇到问题。

List<AlergiesPerPersonBE> AlergiesPerPerson = AlergiesPerPersonToInsert;

RepositoryFactory.GetAlergiesPerPersonRepository().DeleteWhere(x => x.PersonId == id);
RepositoryFactory.GetAlergiesPerPersonRepository().Insert(AlergiesPerPerson);

DataContextFactory.SubmitChanges();

两者(删除和插入)都不提交任何更改。他们只是InsertAllOnSubmit 和DeleteAllOnSumbit。

代码第一次运行良好。所有细节均已正确插入。我第二次运行相同的代码时,数据库的所有行都被删除。第三次,一切正常。它有效,然后无效,依此类推。

最佳答案

尝试

...DeleteWhere(x => x.PersonId == id); 
DataContextFactory.SubmitChanges();

...Insert(AlergiesPerPerson);
DataContextFactory.SubmitChanges();

没有理由每个工作单元只需提交一次更改。请注意,这仍然适用于您拥有的任何交易。

关于linq - 如何在 linq 中删除和重新插入实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5072447/

相关文章:

c# - 如何通过linq从json获取子数据

c# - 将 LinqToSql 与 OData WebApi 一起使用?

c# - 为什么 Convert.ToDecimal 返回不同的值

sql - 错误(11,15) : PL/SQL: ORA-04044: procedure, 此处不允许使用函数、包或类型

python - 向 Pandas 数据框插入一行

c# - 将此代码转换为 LINQ?

c# - AsNoTracking 方法在 linq 语句中抛出错误

linq - 递归地 (?) 将 LINQ 谓词组合成单个谓词

php - 需要 PHP/MYSQLI 两个表之间的连接

c# - 使用 C# Linq 将对象插入到列表中