Linq to sql 如何在存储过程返回多个结果集而不使用ORM的情况下使用LINQ to SQL?
与此链接类似,但是我正在进行的项目没有使用LINQ to SQL的ORM组件(我们更喜欢使用它来快速生成数据库的ADO.Net接口) 目前,我们遵循的模式是:Linq to sql 如何在存储过程返回多个结果集而不使用ORM的情况下使用LINQ to SQL?,linq-to-sql,Linq To Sql,与此链接类似,但是我正在进行的项目没有使用LINQ to SQL的ORM组件(我们更喜欢使用它来快速生成数据库的ADO.Net接口) 目前,我们遵循的模式是: var result = myDataContext.GetAllCustomersAndOrders(); 存储过程如下所示: 我需要采取额外的步骤吗?我是否需要扩展生成的dbml或数据上下文部分类文件 希望这是有意义的。。。这有点难以解释,我发现的所有示例都使用dbml的ORM部分(将表拖放到dbml设计器表面)。是的,您可以这样
var result = myDataContext.GetAllCustomersAndOrders();
存储过程如下所示:
我需要采取额外的步骤吗?我是否需要扩展生成的dbml或数据上下文部分类文件
希望这是有意义的。。。这有点难以解释,我发现的所有示例都使用dbml的ORM部分(将表拖放到dbml设计器表面)。是的,您可以这样做,但我需要为您的dbml创建一个分部类 因此,如果您的dbml文件是MyLinqToSQL.dbml
- 打开dbml设计器
- 将SP拖到设计图面上
- 拯救
- 然后按F7李>
- 打开自动生成的MyLinqToSQL.designer.cs
- 复制与SP(要从中返回多个集的SP)同名的访问方法
- 将其插入刚才创建的MyLinqToSQL.cs中分部类的主体中
- 将方法的名称更改为至少稍有不同的名称
- 将返回类型从ISingleResult更改为IMultipleResult李>
- 使用System.Data.Linq.Mapping.ResultType属性装饰新类,以定义返回集类型李>
请参见多个结果集??或多行(即表格)?多个结果集。Stackoverflow不允许我包含代码。存储过程应该包含两行:返回customer表中的所有行和返回orders表中的所有行。两个select语句,一个存储过程。如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(
{}
),以精确地格式化和语法突出显示这些行。工作起来很有魅力(一旦你知道如何使用它),你就不能将两个表之间的连接作为一个结果集返回吗???@marc_s:我宁愿不要,因为那样会返回大量不需要的额外数据(在这种情况下,每行订单数据都会重复客户数据)。另外,我已经知道怎么做了。我更希望找到解决上述问题的方法:从存储过程返回两个或多个结果集。如何使用System.Data.Linq.Mapping.ResultType属性装饰类?使用“[ResultType(typeof(Employee))]”。有关上下文,请参见上面链接中的步骤8。