|
|
1
1
我认为您将无法使用类似于sqlcommandbuilder的东西自动生成这个。 相反,您可能要做的是利用这样一个事实:数据集自动生成代码中的强类型数据集和数据适配器使用分部类,因此您应该能够向分部类添加一些额外的逻辑,这些逻辑将覆盖默认实现。 例如,您应该能够在生成的数据表适配器上重写initcommandcollection方法,然后可以在update isdeleted=1中替换该方法,而不是使用delete命令。 你必须为此写些聪明的文章,但它会帮助你。我建议让表适配器检查一个列表,看看表名是否在列表中,如果在列表中,那么您就知道您正在处理一个已删除的列,如果没有,那么它就是一个可删除的表记录。 |
|
|
2
2
您可以通过数据库视图访问数据,并在那里进行过滤。 我个人不喜欢数据集定义中的SQL命令。 编辑: 这是没有内置的可能性做的阿法克。您可以在解决方案资源管理器(右键单击.xsd)的上下文菜单上创建一个vs加载项并调用它,或者打开ds并从主菜单调用加载项。然后,该外接程序将解析XSD并标识select和update文本并进行更正。可能只有在生成DS(从SQL Server中拖放)之后,这才有用。 有关外接程序,请查看:
我个人会选择DB方式。生成为您进行筛选的视图,并对那些将执行更新而不是删除的视图添加删除触发器。这样,您就消除了在应用程序上这样做的负担,并使这成为创建物理DB模型的人的责任。每桌一次。相反,在处理单个表(使用同一个DB表的多个数据集)的代码中可能有多个点。 |
|
|
3
1
我会考虑使用一个像 CodeSmith 创建自定义模板来创建数据集,而不是使用“拖放”设计器。创建一个模板首先需要更长的时间,但它提供了对所创建内容的控制和可重复性。 否则,请看一个更好的ORM系统,并定制它的映射以满足您的需要。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |