使用Join,LINQ和Split从StoredProcedure获取n绑定数据.使用IMultipleResults,Linq2SQL

Uma*_*ain 6 .net c# stored-procedures linq-to-sql

我有一个应用程序,我正在使用存储过程和LINQ.我的程序看起来像这样:

myProc

select col1, Col2, Col3 from Tab1 inner join Tab2 on col1=ColA  join tab3 on Col1=ColD

Select cola, Colb, Colc from Taba inner join Tabb on cola=ColX  join tabc on Cola=ColY

Select colP, ColQ, ColR from TabP inner join TabQ on colP=ColW  join tabR on ColP=ColZ
Run Code Online (Sandbox Code Playgroud)

我在LINQ中执行此存储过程.当我执行它时,我在IMultipleResults中得到结果.

下面是我在LINQ中的代码:

[Function(Name = "dbo.MyProc")]
[ResultType(typeof(TabA))]
[ResultType(typeof(TabB))] .....
public IMultipleResults GetMultipleResults([Parameter(DbType = "VarChar(50)")] string i_Cola)
{
    IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), i_Cola);
    return (IMultipleResults)result.ReturnValue;
}
Run Code Online (Sandbox Code Playgroud)

当我按如下方式执行时:

MyContext mCtx = new MyContext()
var allResult = mCtx.GetMultipleResults(txtName.Text.Trim());
IEnumerable<Taba> TabaRes = allResult.GetResult<Taba>();
IEnumerable<TabB> TabbRes = allResult.GetResult<Tabb>();
Run Code Online (Sandbox Code Playgroud)

我得到表的列值,但我也想要内连接列.我已经提到很多博客和论坛,比如......

  1. 本霍尔的博客
  2. Guy Burstein的博客
  3. 微软的博客

...试图找到我的问题的解决方案,但找不到任何解决方案.

小智 0

也许这是一个愚蠢的问题,但是在您的存储过程中:

select col1, Col2, Col3 from Tab1
inner join Tab2 on col1=ColA  join
tab3 on Col1=ColD
Run Code Online (Sandbox Code Playgroud)

col1,col2,col3都是来自,但您从未从其他表中tab1执行过您正在尝试执行的操作。你尝试过吗selectinner join

select col1,col2,col3,colA,colB...  
Run Code Online (Sandbox Code Playgroud)

-或者-

select * from...
Run Code Online (Sandbox Code Playgroud)

  • @Umakanta 对那些试图帮助你的人无礼是非常糟糕的行为。此外,你的问题不太清楚,可能会让一个有理智的人感到困惑。 (4认同)
  • 没必要为此如此紧张和冒犯!也许我没理解你。你能详细说明一下吗?您希望用 LINQ 重写您的存储过程还是......?请解释一下。 (3认同)