如何使用 EDMX 及其创建的函数来调用存储的过程
本文关键字:函数 存储 过程 调用 创建 何使用 EDMX | 更新日期: 2023-09-27 18:35:27
我在DAL中有edmx,它为所有存储的过程自动创建了函数和复杂类型。我能够使用实体对象调用存储的过程。
现在,在业务逻辑层中,我正在类级别为 DAL 创建一个对象。即
public class ProjectBO //Business object
{
ProjectEntities Entities = new ProjectEntities();
public IEnumerable<usp_Project_Team_GetTeam_Result> usp_Project_Team_GetTeam(string strAssociateId)
{
return Entities.usp_Project_Team_GetTeam(strAssociateId);
}
}
我从处理程序调用此函数。所以我的问题是,由于我已经在类级别为实体创建了对象,因此是否会在创建对象后立即打开连接并始终保持打开状态?是否有任何等效的命令,例如connection.close()
在不需要打开连接时关闭连接?!还是 EDMX 会在从数据库获取数据后立即打开和关闭连接???
您的实体变量位于 ProjectBO 实例的范围内。因此,当您的垃圾回收器运行时,您的数据库连接将被清理。不理想。
更好的选择是明确地为其提供更窄的范围:
public IEnumerable<usp_Project_Team_GetTeam_Result> usp_Project_Team_GetTeam(string strAssociateId)
{
using (ProjectEntities Entities = new ProjectEntities())
{
return Entities.usp_Project_Team_GetTeam(strAssociateId);
}
}
这样,您的连接将完全按照您的期望打开和关闭。