EF调用存储过程实例

创建实体:

 1  public class User
 2 {
 3 public string UserID { get; set; }
 4 public string UserName { get; set; }
 5 public string Password { get; set; }
 6 [Description("测试")]
 7 public string UserGroupId { get; set; }
 8 public UserGroup UserGroup { get; set; }
 9 public List<Role> Roles { get; set; }
10 }
11
12 public class UserGroup
13 {
14 public string GroupID { get; set; }
15 public string GroupName { get; set; }
16 public List<User> Users { get; set; }
17 }
18
19 public class Role
20 {
21 public string RoleID { get; set; }
22 public string RoleName { get; set; }
23 public List<User> Users { get; set; }
24 }

2.2、准备SQL数据

--新增数据

 1 alter PROC createData
 2 @rowNum INT
 3 AS
 4 DECLARE @index INT =1,@id VARCHAR(50)=NEWID()
 5 INSERT dbo.UserGroups
 6 ( GroupID, GroupName )
 7 VALUES ( @id, -- GroupID - nvarchar(128)
 8 N‘开发组‘ -- GroupName - nvarchar(max)
 9 )
10 WHILE(@index<=@rowNum)
11 BEGIN
12 INSERT dbo.Users
13 ( UserID ,
14 UserName ,
15 Password ,
16 UserGroupId
17 )
18 VALUES ( NEWID(),
19 N‘张三‘ , -- UserName - nvarchar(max)
20 N‘123456‘ , -- Password - nvarchar(max)
21 @id -- UserGroupId - nvarchar(128)
22 )
23 SET @[email protected]+1
24 END

--删除数据

alter PROC DeleteData
AS
BEGIN
TRUNCATE TABLE dbo.Users
END

--修改数据

ALTER PROC ModifyData
@uid VARchar(50),
@userName varchar(50)
AS
BEGIN
UPDATE dbo.Users SET [email protected] WHERE [email protected]
END

--查找数据

ALTER PROC GetLlist
@rowNumber int
AS
BEGIN
SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY UserID) AS ID,* FROM dbo.Users ) AS A WHERE A.ID<[email protected]
END

2.3C#代码调用实例

2.3.1 查询列表

1 var db = new TestDbContext();
2 SqlParameter[] parameter = new SqlParameter[1];
3 parameter[0] = new SqlParameter("@rowNumber", 10);
4 var users = db.Users.SqlQuery("exec GetLlist @rowNumber", parameter).ToList();

2.3.2  返回有参数的存储过程

 var db = new TestDbContext();
int count = db.Database.SqlQuery(typeof(int),"exec ProSelectCount").Cast<int>().FirstOrDefault();

2.3.3  增删查改

var db = new TestDbContext();
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = new SqlParameter("@rowNum", 5);
db.Database.ExecuteSqlCommand("exec CreateData @rowNum", parameter);
时间: 2024-08-28 18:24:58

EF调用存储过程实例的相关文章

EF 调用存储过程实例

IQueryable<TPT_ECN_MSTR> q = db.TPT_ECN_MSTRS.AsNoTracking(); if (_OrdDateFr == DateTime.MinValue && _OrdDateTo == DateTime.MaxValue) return q.Where(p => 1 == 2).ToList(); string usr_user = GetIdentityName(); OracleParameter[] pars = { ne

EF 调用存储过程、返回多结果集和OUTPUT参数 等问题

一.EF调用存储过程: 1.执行返回表类型的存储过程 先上存储过程 随手写的一个最简单的   .        Student.  Enrollment,Student   Enrollment.StudentIDStudent.StudentID  Enrollment.StudentID 执行存储过程的方法 是用直接执行sql的方式 我在我的文章第九篇 有过详细的介绍~大家可以先去看下 执行表的存储过程 其实是非常强大的 延迟加载 等都有体现 博客园的陆老师已经写了 写的非常清楚了~我这里就

Spring Data JPA调用存储过程实例

Spring Data JPA调用存储过程实例 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JPA连接到数据库,调用存储过程,这样的需求很常见.本文就针对这一点,讲述如何使用Spring Data JPA调用存储过程的方法. 1.存储过程 假设存储过程如下: CREATE OR REPLACE PACKAGE test_pkg AS PROCEDURE in_only_test (inParam1 IN VARC

EF 调用存储过程

EF 调用存储过程直接通过EF 把写好的存储过程 映射到 项目当中 会自动生成 对应存储过程要查询的字段这应该是EF 强大的地方 来一小段代码吧 PracticeEntities context = new PracticeEntities();//EF上下文 var date=context.ProcTest().ToList() ; List < ProcTest_Result > data = date;//ProcTest_Result  EF 帮我们生成的实体类对象

转:EF调用存储过程、函数

EF调用存储过程.函数 2014-04-02 09:12:20|  分类: ORM框架|举报|字号 订阅 一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题 说这个问题前 首先先说下 我使用ef4.1 codefirst的目的. 是因为可以有更纯净的POCO 不再有EDMX这些东西  而不是真正的用 code first 先有代码 再生成数据库.所以 我虽然使用 的是codefirst 但是本质依然是数据库优先. 所以这个被问的

关于EF调用存储过程那点事...

最近研究了下EF怎么调用 数据库的分页存储过程,发现还是很不错的 1.数据库存储过程如下,一个简单的不含条件判断的 2.然后新建数据模型中选择存储过程: : 3.EF会自动生存一个返回复杂类型(ObjectResult)的方法,如下: 4.最后调用此方法: 5.这里值得注意的是,这里有两个输出参数 ObjectParameter(rowCount,pageCount),还有获取返回的数据 result 后一定要toList(),这里涉及到EF的延时查询,如果不toList(),就会得不到 输出参

EF调用存储过程查询表中的部分字段,报数据读取器与指定的“AdventureWorksDWModel.Student”不兼容。某个类型为“Age”的成员在同名的数据读取器中没有对应的列。

实现功能:查询单张表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 -- ==============

EF调用存储过程

代码下载 1. 新建项目. 新建MVC项目 EFCallSP 2. 新建数据库.添加表,存储过程. a) 在App_Data里面添加数据库MyDataBase. b) 新建表 T1 如下 CREATE TABLE [dbo].[T1] ( [C1] INT NOT NULL PRIMARY KEY, [C2] NVARCHAR(50) NULL ) c) 新建存储过程 SP_Select 如下 CREATE PROCEDURE [dbo].[SP_Select] @p1 int = 0, @p2

调用存储过程实例

[WebMethod] public DataSet EmrGetLongOrderData(string strPatientID, string intVisitID) { DataSet dsOrder = new DataSet(); //转化服务器日期格式 System.Globalization.CultureInfo myCI = new System.Globalization.CultureInfo("zh-CN", true); myCI.DateTimeForma