实现功能:查询单张表Student中返回指定的列
一:数据库表结构:
二:存储过程:
1 USE [AdventureWorksDW] 2 GO 3 /****** Object: StoredProcedure [dbo].[GetAllStudentInfo] Script Date: 2014/11/18 21:47:36 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 -- ============================================= 9 -- Author: 王光旭 10 -- Create date: 2014-11-18 11 -- Description: 返回Student表中指定的字段 12 -- ============================================= 13 ALTER PROCEDURE [dbo].[GetAllStudentInfo] 14 @stuName varchar(50) 15 AS 16 BEGIN 17 SET NOCOUNT ON; 18 select ID,Name,TID from Student --注意此处没有查表中的Age字段 19 END
三:EF模型更新表和存储过程以及存储过程的函数导入
四:客户端调用
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data.Objects; 6 7 namespace ClassLibrary1 8 { 9 public class Class1 10 { 11 public void accp() 12 { 13 awdEntities awd = new awdEntities(); 14 15 ObjectParameter[] para = new ObjectParameter[] 16 { 17 new ObjectParameter("stuName", "田三") 18 }; 19 //QueryAllStudentInfo为导入存储过程制定的那个函数名称 20 var list = awd.ExecuteFunction<Student>("QueryAllStudentInfo", para).ToList(); 21 } 22 } 23 }
此时问题就出来了:
解决办法:
此时客户端调用需要更改一下返回的数据类型:
1 using System.Text; 2 using System.Data.Objects; 3 4 namespace ClassLibrary1 5 { 6 public class Class1 7 { 8 public void accp() 9 { 10 awdEntities awd = new awdEntities(); 11 12 ObjectParameter[] para = new ObjectParameter[] 13 { 14 new ObjectParameter("stuName", "田三") 15 }; 16 //QueryAllStudentInfo为导入存储过程制定的那个函数名称 17 //之前的数据返回类型Student更改为QueryAllStudentInfo_Result 18 var list = awd.ExecuteFunction<QueryAllStudentInfo_Result>("QueryAllStudentInfo", para).ToList(); 19 } 20 } 21 }
问题就到此解决完毕。希望能帮到大家。
时间: 2024-11-06 19:51:54