【发布时间】:2015-12-25 04:59:27
【问题描述】:
C# Winforms、SQL Server、实体框架 6。
所以我有两张桌子,Employee 和 BusinessGroup。 Employee 是 BusinessGroup 中的外键。
作为测试的一部分,我尝试删除两名员工,然后致电SaveChanges()。
当然,它会抛出一个DbUpdateException,我抓住并尝试处理它。
这是我的问题:似乎在第一次删除(尝试)发生后立即抛出异常。我想为我的用户做的是列出所有导致冲突的记录(在这种情况下是两条)。
我该怎么做?
谢谢。
【问题讨论】:
-
您是在问如何编写 SQL 查询,还是在问如何在
winforms控件中显示信息?到目前为止,您尝试过什么? -
不,不是问如何编写 SQL 查询,只是指出底层 DB 是 SQL Server。到目前为止,我已经尝试捕获异常并对其进行解码,并且效果很好。问题是,当删除多条记录(通过我的应用程序)并且我执行
SaveChanges()时,我只得到第一个删除失败的条目,我想知道如何获取所有删除失败或删除失败的条目。 -
您很可能必须编写一个像
select * from BusinessGroup where EmployeeId in (...)这样的选择语句,它会返回无法删除的员工。您可能还想考虑使用软删除,方法是添加一个IsDeleted列。
标签: c# sql-server winforms entity-framework-6