【发布时间】:2014-07-17 16:14:58
【问题描述】:
我创建了以下存储过程,它接受两个参数并搜索两个不同的数据库:-
Use ITSys
Go
CREATE PROCEDURE [dbo].[AdvanceSearch]
-- Add the parameters for the stored procedure here
@Name varchar(50) = null,
@Tag varchar(50) = null
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
select t.Tag , r.RESOURCENAME , rs.DESCRIPTION , tt.Name
from [ITSys].[dbo].[Technology] t
inner join
[IT360servicedesk].[dbo].[Resources] r
on
t.IT360ID = r.RESOURCEID
inner join
[IT360servicedesk].[dbo].[Resourcestate] rs
on rs.RESOURCESTATEID = r.RESOURCESTATEID
inner join
[ITSys].[dbo].[TechnologyTypes] tt
on tt.AssetTypeID = t.TypeID
where t.Tag = @Tag and r.RESOURCENAME = @Name
END
然后我创建了以下视图模型类,以映射存储的生产值:-
public class AdvanceSearch
{
public string Tag { set; get; }
public string Name { set; get; }
public string type { set; get; }
}
目前在我的存储库类中,我有以下内容:-
public IQueryable<AdvanceSearch> AdvanceSearch(NetworkAdvanceSearch na, NameAdvanceSearch nas)
{
var t = ITSys.AdvanceSearch(nas.name, nas.tag);
//地图应该在这里完成...
但我有以下问题:-
如何将存储过程返回的值映射到视图模型类中?
因为这是我第一次在实体框架内使用存储过程,所以我调用存储过程并映射其值的方式是正确的做事方式吗?还是有更好的方法?
谢谢
【问题讨论】:
-
通常 ADO.NET 实体框架会在 C# 中为存储过程结果创建包装类。我将它映射到视图模型。
标签: asp.net sql asp.net-mvc entity-framework