EF 存储过程(下)】的更多相关文章

本节,我们将学习如何手动添加/修改存储过程,如何使EF能够支持Output类型的参数 > 添加/修改存储过程 有时候,某个SQL语句比较复杂,但是数据库中又没有定义相应的存储过程.这个时候,我们又想使上层代码比较简单.方便的方式来完成此项任务.那么,此时,我们便可以手工在实体模型(.edmx文件)中添加自己需要的存储过程了.这样既方便上层调用又方便后期的修改.以手动修改实体模型edmx文件,添加名为CustomerByCommandText的存储过程为例.具体步骤如下:修改实体模型文件,找到ss…
目前,EF对存储过程的支持并不完善.存在以下问题:> EF不支持存储过程返回多表联合查询的结果集.> EF仅支持返回某个表的全部字段,以便转换成对应的实体.无法支持返回部分字段的情况.> 虽然可以正常导入返回标量值的存储过程,但是却没有为我们自动生成相应的实体.cs代码,我们还是无法在代码中直接调用或使用标量存储过程> EF不能直接支持存储过程中Output类型的参数.> 其他一些问题.下面,主要针对如何使用存储过程,以及存储返回实体.表的部分字段这个几个问题,做具体介绍.…
首先准备好分页的T-SQL语句: create proc usp_activityFenYe @pageIndex int, @pageSize int, @pageCount int output as declare @count int begin select @count=COUNT(*) from Activity set @pageCount=CEILING(@count*1.0/@pageSize) select * from(select *,ROW_NUMBER()over(…
(一)什么是T4模板? T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit. T4文本模板,即一种自定义规则的代码生成器.根据业务模型可生成任何形式的文本文件或供程序调用的字符串.(模型以适合于应用程序域的形式包含信息,并且可以在应用程序的生存期更改) (二)T4基本结构 T4模板可以分为:指令块.文本块.控制块. 指令块 - 向文本模板化引擎提供关于如何生成转换代码和输出文件的一般指令.文本块 - 直接复制到输出的内容.控制块 - 向文本…
今天我们利用EF执行sql语句的方式来执行存储过程,并得到OutPut的值. 首先新建存储过程: Create PROCEDURE proc_testEF   (     @id int,     @voteCount int OUTPUT --返回值   )   AS   BEGIN     SELECT @voteCount = COUNT(*)     FROM ConfirmItem     WHERE ConfirmItemID = @id;     select * from Con…
在EF中,各个实体的插入.更新和删除也都通过使用存储过程来完成,以便提高点性能.这个类似于数据集.其步骤是:先定义存储过程,然后在VS的可视化设计器,设置存储过程映射即可. 下面,以为Supplier实体映射存储过程为例. 分别建立插入.更新和删除存储过程. InsertSuppliers存储过程定义如下: CREATE PROCEDURE [dbo].[InsertSuppliers] -- Add the parameters for the stored procedure here @C…
最近想使用ef做一些开发但是遇到了一些小问题就是如何实现多表的查询然后经过查资料终于找出了结果 我们知道ef中表的关系是一对一  一对多  多对多 接下来就讲一下一对一的关系下的栗子 先编写两个表 第一个实体数据模型中的字段,名字叫做Userss public int UId { get; set; } public string Uname { get; set; } 第二个实体数据模型中的字段,名字叫做Mission public int MId { get; set; } public D…
用EF Code first模式来开发系统,可使用Migrations命令来让数据库自动更新 1.在VS->工具->库程序包管理器->程序包管理控制台 中执行 Enable-Migrations 命令 执行成功后,会自动在项目中添加Migrations文件夹,并生成类文件Configuration.cs. 2.生成更新记录: Add-Migration name 3.自动更新 Update-Database 如果更新失败,可使用 Update-Database -Verbose强制更新…
小故事 在开始讲这篇文章之前,我们来说一个小故事,纯素虚构(真实的存钱逻辑并非如此) 小刘发工资后,赶忙拿着现金去银行,准备把钱存起来,而与此同时,小刘的老婆刘嫂知道小刘的品性,知道他发工资的日子,也知道他喜欢一发工资就去银行存起来,担心小刘卡里存的钱太多拿去"大宝剑",于是,也去了银行,想趁着小刘把钱存进去后就把钱给取出来,省的夜长梦多. 小刘与刘嫂取得是两家不同的银行的ATM,所以两人没有碰面. 小刘插入银行卡存钱之前查询了自己的余额,ATM这样显示的: 与次同时,刘嫂也通过卡号和…
当我们修改数据模型,添加一个如下字段 再次运行程序,会因为数据库结构与模型不一致而报错 为解决以上错误可以采取以下三种方式 1.  删除数据库,重新运行站点,会重新生成数据库,这样就会丢失数据 2.  手动在数据库中修改表结构,使其与模型一致 3.  使用如下教程所示的EF的数据迁移[Code First Migrations] 在NuGet程序包管理器中执行如下命令启用EF的数据迁移 此时会生成一下两个文件 其中[201504030707151_InitialCreate]是根据存在的数据库文…