2012-07-25 68 views
0

我创建了一个存储过程,它将返回一组数据。在我的情况下,它被设置角色的如何使用存储过程获得实体框架中的数据集合

CREATE PROCEDURE [dbo].[GetRoles] 
@ID Int 
AS 
SELECT Roles.Role FROM Roles WHERE [email protected] 
RETURN 0 

我使用实体框架来得到这个值的变量是这样的:

var query = context.GetRoles(ID); 

我打算处理此dataset和创造的list“角色”,并返回list

但由于我调用存储过程,我不是在这里 写查询语句,例如:

using (AdventureWorksEntities context = new AdventureWorksEntities()) 
{ 
    string LastName = "Zhou"; 
    var query = from contact in context.Contacts 
       where contact.LastName == LastName 
       select contact; 

    // Iterate through the collection of Contact items. 
    foreach(var result in query) 
    { 
     Console.WriteLine("Contact First Name: {0}; Last Name: {1}", 
       result.FirstName, result.LastName); 
    } 
} 

我怎样才能像在每个结果值是多少?

我不能明显访问智能感知

什么是我应该在这个问题上的做法表的字段?

在此先感谢..

回答

3

您需要在您的EDMX模型来创建一个FunctionImport,列映射到实体或复杂类型。为此,在EDMX中右键单击,选择添加/函数导入,然后从列表中选择存储过程(如果不存在,则从数据库中刷新模型)。给FunctionImport的名称。(如:“GetRoles”),并选择返回结果是什么(在你的榜样,标量的集合,任何类型的Roles.Role是

然后

var query = context.GetRoles(ID); 

将返回ObjectSet<T>,其中T是你已经映射到的类型,你可以迭代。

+0

请你详细说明一下,我已经有了数据库上下文,用于访问数据库。 – 2012-07-25 09:57:22

+0

非常感谢podiluska。对于其他人来说,这是一些新的链接。一些其他人已经在Entity Frame Work扩展中提出了这个建议他的作品很棒。 msdn.microsoft.com/en-us/library/bb896231.aspx - – 2012-07-25 10:43:47