EF 存储过程

//create parameters to pass to the stored procedure
//First input Parameter
var param1 = new SqlParameter { ParameterName = "@paramName1",
SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = 1 }; 

//Second input parameter
var param2 = new SqlParameter { ParameterName = "@paramName2",
SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Input, Value = "Test Input" };                 

//third out parameter
var param3 = new SqlParameter { ParameterName = "@paramName3",
SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Output, Size = 255 }; 

//compose the SQL
var SQLString = "EXEC [dbo].[name of the Stored Proc] @paramName1, @paramName2, @paramName3"; 

//Execute the stored procedure
var employees= DataContext.Employee.SqlQuery(SQLString, param1, param2, param3); 

//or you can execute the SP using below
//var employees = DataContext.Database.SqlQuery<Employees>
(SQLString, param1, param2, param3)

Points of Interest

  1. In the above sample, DataContext would be the name of your DataContext Instance variable
  2. Employee would be name entity (POCO class) mapping to your database
  3. If the resultset returned by the SP would be mapped to the IEnumerable collection of Entity - The above sample would return IEnumerable<Employee>
  4. We can use <DataContext>.DataBase.SqlQuery method or <DataContext>.<EntityName>.SqlQuery
  5. Your out param declared would have value returned by SP
  6. The connect sting should have MARS = true - MultipleActiveResultSets=true
时间: 2024-11-05 06:11:50

EF 存储过程的相关文章

分页:T-SQL存储过程和EF存储过程的使用

首先准备好分页的T-SQL语句: 1 create proc usp_activityFenYe 2 @pageIndex int, 3 @pageSize int, 4 @pageCount int output 5 as 6 declare @count int 7 begin 8 select @count=COUNT(*) from Activity 9 set @pageCount=CEILING(@count*1.0/@pageSize) 10 select * from(selec

EF 存储过程(上)

目前,EF对存储过程的支持并不完善.存在以下问题:> EF不支持存储过程返回多表联合查询的结果集.> EF仅支持返回某个表的全部字段,以便转换成对应的实体.无法支持返回部分字段的情况.> 虽然可以正常导入返回标量值的存储过程,但是却没有为我们自动生成相应的实体.cs代码,我们还是无法在代码中直接调用或使用标量存储过程> EF不能直接支持存储过程中Output类型的参数.> 其他一些问题.下面,主要针对如何使用存储过程,以及存储返回实体.表的部分字段这个几个问题,做具体介绍.

EF 存储过程(下)

本节,我们将学习如何手动添加/修改存储过程,如何使EF能够支持Output类型的参数 > 添加/修改存储过程 有时候,某个SQL语句比较复杂,但是数据库中又没有定义相应的存储过程.这个时候,我们又想使上层代码比较简单.方便的方式来完成此项任务.那么,此时,我们便可以手工在实体模型(.edmx文件)中添加自己需要的存储过程了.这样既方便上层调用又方便后期的修改.以手动修改实体模型edmx文件,添加名为CustomerByCommandText的存储过程为例.具体步骤如下:修改实体模型文件,找到ss

EF基本操作增、删、查、改、分页,join……等

一.批量添加数据 1 static void Main(string[] args) 2 { 3 add(); 4 add2(); 5 Console.ReadKey(); 6 } 7 8 static void add() 9 { 10 DemoDbEntities db = new DemoDbEntities(); 11 Stopwatch st = new Stopwatch(); 12 st.Start(); 13 for (int i = 0; i < 1000; i++) 14 {

Entity Framework 学习

Entity Framework 学习初级篇1--EF基本概况... 2 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍... 7 Entity Framework 学习初级篇3-- LINQ TOEntities. 10 Entity Framework 学习初级篇4--EntitySQL. 17 Entity Framework 学习初级篇5--ObjectQ

Entity Framework学习中级篇

1-EF支持复杂类型的实现 本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作. 通常,复杂类型是指那些由几个简单的类型组合而成的类型.比如:一张Customer表,其中有FristName和LastName字段,那么对应的Customer实体类将会有FristName和LastName这两个属性.当我们想把FirstName和LastName合成一个名为CustomerName属性时,此时,如果要在EF中实现这个目的,那么我们就需要用到复杂类型. 目前,由于EF不

LINQ TO SQL和Entity Framework 的关系 你了解多少?

1. LINQ  TO SQL 和EF 特点:  LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射.其中包括的有DBFrist  Code Frist    ModeL  Frist   三种中方式 来进行和数据库之间的访问.只是形式不同而已本质没有什么区别.都是ORM  之间的转化.最终都是来进行访问底层的数据库的对象 和服务. 简单来说LINQ是为了满足不知道怎么操作数据库的程序员开发设计的,LinQ 可以让他们以一种面向数

客家话规范的年客家话规范的

http://www.gettyimages.cn/newsr.php?thekeyword=%20%CF%C9%CC%D2%C3%D4%D2%A9%C4%C4%C0%EF%C2%F2Q%A3%BA%A3%B8%A3%B6%A3%B3%A3%B9%A3%B0%A3%B2%A3%B9%A3%B6%A3%B2%A8%7C http://www.gettyimages.cn/newsr.php?thekeyword=%A1%FD%CC%EC%C3%C5%C3%D4%D2%A9%C4%C4%C0%EF%

手刃崖戮温v3v3pzjqa3ner81u

http://www.qiushibaike.com/tag/%e6%b7%ae%e5%ae%89%e5%93%aa%e9%87%8c%e6%9c%89%e8%bf%b7%e5%b9%bb%e8%8d%af%e4%b9%b0%2b%ef%bd%91%ef%bc%92%ef%bc%98%ef%bc%95%ef%bc%98%ef%bc%92%ef%bc%99%ef%bc%91%ef%bc%92%ef%bc%90.http://www.qiushibaike.com/tag/%e5%93%aa%e5%