gpt4 book ai didi

c# - Linq2Sql Designer 将存储过程多个结果集变为单个

转载 作者:行者123 更新时间:2023-11-30 15:11:26 25 4
gpt4 key购买 nike

在 linq2sql 类中,我调用了一个返回多个结果集的存储过程并且它起作用了。

每当我在 linq2sql 设计器中添加一个新过程时,它都会悄悄地将上述存储过程从 IMultipleResults 转换为 designer.cs 中的 ISingleResult。

我用以前的版本替换了代码并且它可以工作,但为什么会这样?

如何防止设计人员更改有效的代码?

每次我添加一个新的 sp,我都必须撤消设计器所做的。

这个

[Function(Name="dbo.GetCustomerOrderDetails")]
[ResultType(typeof(GetCustomerOrderSummaryResult))]
[ResultType(typeof(GetOrderLineDetailsResult))]

public IMultipleResults GetCustomerOrderDetails([Parameter(DbType="UniqueIdentifier")] System.Nullable<System.Guid> custGuid, [Parameter(DbType="VarChar(75)")] string email, [Parameter(DbType="Int")] System.Nullable<int> orderId)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), custGuid, email, orderId);
return (IMultipleResults)result.ReturnValue;
}

被 linq2sql 设计者更改为这个

[Function(Name="dbo.GetOrderLineDetails")]
public ISingleResult<GetOrderLineDetailsResult> GetOrderLineDetails([Parameter(DbType="Int")] System.Nullable<int> orderId)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), orderId);
return ((ISingleResult<GetOrderLineDetailsResult>)(result.ReturnValue));
}

我最终手动撤消了它。

最佳答案

OR 设计器创建的派生 DataContext 类被声明为分部类。创建另一个扩展该部分类的文件,将 OR 设计器不断更改的特定代码以及 GetOrderLineDetailsResult 类移动到该文件中。然后从 OR 设计器中删除 sp。 OR 设计师现在应该让您的代码保持不变。

关于c# - Linq2Sql Designer 将存储过程多个结果集变为单个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com