![](/img/trans.png)
[英]EF4.0 - Is there a way to see what entities are attached to what ObjectContext during debugging?
[英]How to dispose ObjectContext in EF4.0 implementation?
我有以下代码结构。 它是一个WPF应用程序,通过WCF服务公开了DAL。 我们已经创建了域实体,并在从EF实体中填充后将其传递给他们。
EDMX生成的代码:-
public partial class EDiscDbConnection : ObjectContext
{
#region Constructors
/// <summary>
/// Initializes a new EDiscDbConnection object using the connection string found in the 'EDiscDbConnection' section of the application configuration file.
/// </summary>
public EDiscDbConnection() : base("name=EDiscDbConnection", "EDiscDbConnection")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
}
现在实例化ObjectContext,我们创建了一个BaseDAL,应用程序中的每个DAL都继承自BaseDal
BaseDAL:-
public class BaseDal
{
public EDiscDbConnection context; // EF Content used for connection to the Database.
/// <summary>
/// Base constructor to initilize the Entity Framework Content.
/// </summary>
public BaseDal()
{
string connstring = ConfigurationManager.ConnectionStrings["EDiscDbConnection"].ConnectionString;
//Decrypt Connection String
context = new EDiscDbConnection(Encryption.GetDecryptedString(connstring, "F045FBC3A427A1018E297BF442216C3FB3D62F51B57A33AC744B6238E05ADB08"));
//context = new EDiscDbConnection();
}
}
DAL如下:
public partial class PatientChartDal : BaseDal
{
public List<UserFacility> GetAllFacilities()
{
List<UserFacility> userFacilities = new List<UserFacility>();
IEnumerable<Facility> userFac = from fac in context.Facilities
from usrfac in fac.UserFacilityMappings
where fac.IsActive
select fac;
if (userFac != null && userFac.Count() > 0)
{
userFacilities = new List<Domain.UserFacility>();
foreach (var u in userFac.Distinct())
{
userFacilities.Add(new Domain.UserFacility()
{
Name = u.Name,
FacilityId = u.FacilityId,
//FacilityConfiguration = GetFacilityConfiguration(u.FacilityId),
//UserConfiguration = GetFacilityUserConfiguration(u.FacilityId, userId),
Code = u.Code,
//TxAreaID = u.TxAreaID,
TimeZone = ConvertToDomainEntity(u.Seed_TimeZone)
}
);
}
}
return userFacilities;
}
}
我对此实施有以下疑问
在这些情况下,人们遵循的最佳实践是什么。 请提出建议。
提到这个问题: 实体框架和连接池
简而言之,您应该将查询包装在using()
语句中,以确保在每次查询执行后对它们进行垃圾回收。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.