|
|
1
2
没有快速简便的方法来检查这个。你可以用
绝对的最佳选择是在每个位置验证所需的几行自定义代码。 另一个选择是启动一个事务,尝试删除。如果失败了,你知道的。如果成功,回滚事务,您就知道删除是可能的。这仍然很难看,而且使用事务的方式有点混乱,但它会起作用的。不过,请确保该表没有启用级联删除。 |
|
|
2
2
查询时,对子表执行左联接。使用candelite计算值来决定是否应该显示按钮。如果每个父行有多个子行,则此处的计数将删除重复项。
另一种可能是
|
|
3
1
我在以前的申请中做过这种事。我创建了一个名为TryDelete()的函数。在方法中,我试图删除所需的行。如果我得到一个FK异常,我会捕获它并返回false。无论是真是假,我都将删除封装在一个事务中,然后将其回滚。 |
|
4
1
您可以在实体的一个部分类中添加一个方法,该方法将检查引用对象是否存在。
例如,假设Entity1的集合为Entity2。基本上,在每个实体部分类中,您将编写一个属性
正如您所猜测的,您将需要确保在获取中始终包含引用的值,或者,如果您正在附加到上下文中工作,则可以使用
然后,您可以在需要时根据该元素属性显示/隐藏“delete”按钮,从而避免每次都要重复检查。 |
|
|
5
0
我认为你有两个可能的选择,因为你不能保证所有的关系都会被映射到你的OM中,你必须在数据库中检查它。 您可以尝试在事务内部进行实际的挖掘,然后回滚,但如果您必须使用级联删除来限制配置,则这也可以工作。。。 另一种方法是从sysobjects表中提取所有约束,并验证每个表没有记录。但这将需要一些动态SQL,这也会变得相当混乱。 |
|
|
6
0
如果你在数据库级别,我会加入所有可能存在冲突的表格。 任何返回的记录都不能被删除,这意味着剩余的集合可以被删除。 |
|
7
0
假设数据库被多个用户(绝大多数用户)使用,那么在“检查”删除是可能的和用户可能决定删除行之间会有一个机会窗口,在此期间,其他人可能会执行一些否定测试结果的活动。 这意味着您可能会显示Delete按钮,但是当您尝试删除时,它已经不可能了。此外,您可能不会显示删除按钮,但当用户决定要删除行(但找不到按钮)时,应该允许他们删除。 没有办法避免这种比赛。如果人们愿意的话,我会让他们尝试删除,但是要准备好处理外键导致的失败。 |
|
|
Mike · html助手-我如何摆脱name属性? 11 年前 |
|
|
user3902826 · 显示mvc2视图 12 年前 |
|
|
Baxter · 将带有List<T>的视图模型发布到控制器操作方法 12 年前 |
|
|
yoozer8 · 将类应用于某些链接文本 14 年前 |