什么时候应该DbContext.dispose()
用实体框架调用?
这种想象的方法难道不好吗?
public static string GetName(string userId)
{
var context = new DomainDbContext();
var userName = context.UserNameItems.FirstOrDefault(x => x.UserId == userId);
context.Dispose();
return userName;
}
Run Code Online (Sandbox Code Playgroud)这是否更好?
public static string GetName(string userId)
{
string userName;
using(var context = new DomainDbContext()) {
userName = context.UserNameItems.FirstOrDefault(x => x.UserId == userId);
context.Dispose();
}
return userName;
}
Run Code Online (Sandbox Code Playgroud)这是否更好,也就是说,当使用using()时,是否应该调用context.Dispose()?
public static string GetName(string userId)
{
string userName;
using(var context = new DomainDbContext()) {
userName = context.UserNameItems.FirstOrDefault(x => x.UserId == userId);
}
return userName;
}
Run Code Online (Sandbox Code Playgroud)我有一个通过实体框架连接到MYSQL数据库的应用程序.它100%完美地工作,但我想添加一小段代码,在app启动时测试与数据库的连接.
我只想简单地向数据库运行一个小命令并捕获任何异常,但是如果出现问题(例如App.Config缺失或数据库服务器关闭),应用程序需要花费大量时间来运行此代码然后抛出例外(约1分钟).我想这是由于连接超时等,但我摆弄这些属性无济于事.
是否有人能够协助任何想法去哪儿?