orm中使用存储过程

Posted 飞刀软件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了orm中使用存储过程相关的知识,希望对你有一定的参考价值。

在orm开发中也会用到存储过程,案例如下:

Create proc [dbo].[proc_GetCompanyStructureByDepartStructureId] @Com_StructureId uniqueidentifier
AS
BEGIN
declare @structureType int
declare @parentStructureId uniqueidentifier
select @structureType=b.Type,@parentStructureId=a.ParentStructureID from Com_Structure a inner join Com_StructureType b
on a.Com_SructureTypeID=b.Com_StructureTypeID where [email protected]_StructureId

if(@structureType=2)--2表示部门
select Top 1 * from Com_Structure where [email protected]
END

GO

sql中直接调用存储过程  exec proc_GetCompanyStructureByDepartStructureId ‘47F10D40-535A-4AF8-AD98-81616A2822B1‘

orm调用存储过程 如下:

Guid CompanyStructureId;
var dr = McDB.DBContext.StoredProcedure("proc_GetCompanyStructureByDepartStructureId").AddInputParameter("@Com_StructureId", System.Data.DbType.Guid, id).ToDataReader();
while (dr.Read())
{
CompanyStructureId = Guid.Parse(dr["Com_StructureId"].ToString()); //存储过程返回一条记录,取其中的单个值
}
dr.Close();

以上是关于orm中使用存储过程的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 的 ORM 中访问存储过程的最佳方法是啥

轻量ORM-SqlRepoEx 存储过程操作

使用 .NET ORM 工具(如 Entity Framework、LinqToSql)而不是存储过程的好处

代码生成器与 ORM 与存储过程

支持 OleDb 和存储过程的良好 .NET ORM 框架?

存储过程复杂SQL语句ORM的陷阱