目前我有大约30个表适配器都有查询" InsertAndReturnId"。哪个是插入查询,返回最后插入的id。为了实现这一点,我必须将查询的执行模式设置为Scalar(在visual studio Dataset Designer中)。
问题是,当我编辑或保存该查询时,它会将执行模式重置为非查询,有时我忘记将其更改回来。
这是一个真正的痛苦,因为它们都返回一个int值(并且大部分代码只是将返回值强制转换为int)
我查看了Visual Studio生成的内容,它看起来取决于它将添加的执行属性:
returnValue = command.ExecuteScalar();
或者
int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery();
我不愿意每次使用这些方法并添加支票。或者为每个表适配器添加检查条件。
是否可以循环(在编译期间或在运行时)由visual studio生成的表适配器并检查它们是作为标量还是非查询执行?
类似的东西:
foreach(var tableAdapterMethod in tableAdapterMethods)
{
if(tableAdapterMethod.Name == "InsertAndReturnId")
{
if(tableAdapterMethod.ExecuteType != "Scalar")
{
// throw warning and stop further execution.
}
}
}