【发布时间】:2013-12-21 03:54:53
【问题描述】:
在我当前的项目中,我正在利用 LINQ 从具有一个数据集的存储过程中提取结果。
但是,我希望做的是利用 LINQ 调用具有多个数据集的过程。因此,只需调用一次 SQL,我可以处理 3 个结果,而不是调用 3 个不同的过程来获取我的所有数据。
我偶然发现了这个http://www.codeproject.com/Tips/315667/LINQ-to-SQL-Mapping-Stored-Procedure-with-Multiple,但是,据我了解,这将根据我正在调用的数据集返回一个数据集。我的目标是减少数据库调用次数。
这是我目前的做法。不确定是否可以继续使用此模型来获得我正在寻找的结果,或者我是否必须以不同的方式使用 LINQ。
我目前使用 Visual Studio 2010。
我有一个链接到 SQL 数据库的 .dbml 文件。我将过程从服务器资源管理器拖放到 .dbml 文件中。在那之后,我不碰 .dmbl 文件。我让 .NET 处理这一切。
我有一个这样的网络服务,它将利用该过程返回该数据。
//TEST: mutliple dataset return
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<ps_UTY_TEST_MultipleDataSetResult> Return_multi_dataset()
{
InnoUtilityDataContext db = new InnoUtilityDataContext();
List<ps_UTY_TEST_MultipleDataSetResult> d = new List<ps_UTY_TEST_MultipleDataSetResult>();
d = db.ps_UTY_TEST_MultipleDataSet().ToList();
return d;
}
这在返回单个数据集时效果很好,但我想从这样的过程中返回多个数据集。
ALTER PROC [dbo].[ps_UTY_TEST_MultipleDataSet]
AS
SELECT uUsername
FROM Common.dbo.tbluser
WHERE uUserName = 'username1'
SELECT uFname
FROM Common.dbo.tbluser
WHERE uUserName = 'username2'
这可能吗?
【问题讨论】:
标签: c# sql sql-server linq stored-procedures