多个 DbCon 对象
Multiple DbCon Object
namespace MyMain.Controllers
{
public class Home
{
**//Open First Db Connection Here**
public MyDbConEntities db = new MyDbConEntities();
public ActionResult Index()
{
var user = db.User.FirstOrDefault();
**//Open second Db Connection Here**
using (var myTask = new MyTask1())
{
myTask.Execute(user.Id);
}
}
}
}
namespace MyMain.Task
{
private MyDbConEntities db = new MyDbConEntities();
public class MyTask1 : IDisposible
{
private int Id;
public MyTask1(int id)
{
db = new MyDbConEntities();
Id = id;
}
public void Execute()
{
**//Open thidr Db Connection Here**
using (var mySubTask = new MySubTask1())
{
mySubTask.Execute(Id);
}
db.UserDetails.FirsOrDefault(x => x.UserId = Id)
}
public Dispose()
{
db.Dispose();
}
}
}
嗨,朋友们,我的问题是同时打开多个 DbCon。
在上面的代码中,我试图表达我的想法。我的目的是,在每个单独的任务 Class 中打开 DbCon。但有时,我从另一个任务中调用一个任务 class.
所以有时候,可以短时间同时打开几个dbCon。我不想发送 MyMain/Home Class db 对象作为任务 classess 的实例。我以为错误处理案例。例如,当 MySubTask1 发生错误时
(如果我使用 db 对象作为实例,dbCon 可能会关闭,整个系统可能会失败。
所以我尝试实现这个...你觉得我的想法怎么样?
你能给我一个线索吗?对于大型数据库和用户,此方法在服务器上可能会出现问题。
如何通过此方法使用 UnitOfWork?
在基于 EF 的设计 N-Tir 应用程序中不常见的是,在每个 class 和我们想要使用它的方法中创建 DbContext 的实例。
这样,
在交易期间执行不同任务的能力被破坏。
为了解决这个问题使用 Context Per Request Pattern 或 UnitOfWork,
通过这样做在不同的层中共享 Instans Of Context。
模型工作单元的重要性并在通话中分享
A) 更好的性能
B) 并发问题
C)
交易的正确使用
namespace MyMain.Controllers
{
public class Home
{
**//Open First Db Connection Here**
public MyDbConEntities db = new MyDbConEntities();
public ActionResult Index()
{
var user = db.User.FirstOrDefault();
**//Open second Db Connection Here**
using (var myTask = new MyTask1())
{
myTask.Execute(user.Id);
}
}
}
}
namespace MyMain.Task
{
private MyDbConEntities db = new MyDbConEntities();
public class MyTask1 : IDisposible
{
private int Id;
public MyTask1(int id)
{
db = new MyDbConEntities();
Id = id;
}
public void Execute()
{
**//Open thidr Db Connection Here**
using (var mySubTask = new MySubTask1())
{
mySubTask.Execute(Id);
}
db.UserDetails.FirsOrDefault(x => x.UserId = Id)
}
public Dispose()
{
db.Dispose();
}
}
}
嗨,朋友们,我的问题是同时打开多个 DbCon。
在上面的代码中,我试图表达我的想法。我的目的是,在每个单独的任务 Class 中打开 DbCon。但有时,我从另一个任务中调用一个任务 class.
所以有时候,可以短时间同时打开几个dbCon。我不想发送 MyMain/Home Class db 对象作为任务 classess 的实例。我以为错误处理案例。例如,当 MySubTask1 发生错误时 (如果我使用 db 对象作为实例,dbCon 可能会关闭,整个系统可能会失败。
所以我尝试实现这个...你觉得我的想法怎么样?
你能给我一个线索吗?对于大型数据库和用户,此方法在服务器上可能会出现问题。
如何通过此方法使用 UnitOfWork?
在基于 EF 的设计 N-Tir 应用程序中不常见的是,在每个 class 和我们想要使用它的方法中创建 DbContext 的实例。
这样, 在交易期间执行不同任务的能力被破坏。
为了解决这个问题使用 Context Per Request Pattern 或 UnitOfWork, 通过这样做在不同的层中共享 Instans Of Context。
模型工作单元的重要性并在通话中分享
A) 更好的性能
B) 并发问题
C) 交易的正确使用