pdi*_*ddy 8 .net c# entity-framework unit-of-work
假设我在我的数据库中有多个数据库模式,例如:HumanRessources和Inventory.
在每个架构中包含多个表.您是否经常将数据库拆分为多个edmx,或者通常只将所有内容放在一个edmx中?
我正在考虑为每个模式创建一个edmx,但想知道这将如何影响unitorwork模式.通过阅读一些文章,ObjectContext将成为单元工作.通过定义2 edmx,我将得到2个ObjectContext:HumanRessourceContext和InventoryContext,这意味着每个将是一个单元工作.如果我希望对humanressource中的实体和inventorycontext中的实体进行的所有修改都是ATOMIC,那么这可以通过unitofwork模式实现吗?
虽然这不是通过模式将数据库拆分为EDMX的认可,但您可以使用以下命令使更新成为原子TransactionScope
:
using(TransactionScope trans = new TransactionScope())
{
using(HumanResources hr = new HumanResources())
{
//...
hr.SaveChanges();
}
using(Inventory inv = new Inventory())
{
//...
inv.SaveChanges();
}
trans.Complete();
}
Run Code Online (Sandbox Code Playgroud)
显然你可以重新安排你喜欢的上下文对象(例如,如果你需要同时使用它们),你可以将事务隔离级别改为适当的,但是这应该给你需要知道的内容.为了使您的数据库更改为原子.
归档时间: |
|
查看次数: |
3136 次 |
最近记录: |