TCM*_*TCM 2 silverlight silverlight-3.0 silverlight-4.0 wcf-ria-services
我学会了如何在我的另一个问题中使用TransactionScope在Entity Framework中配置事务.但它仍然让我感到困惑!我的意思是RIA服务如何执行交易以及我们如何指定交易选项?我的意思是,假设在Silverlight的客户端上我们指定了这样的东西: -
someContext.Add(someEntity1);
someContext.Add(someEntity2);
someContext.Add(someEntity3);
Run Code Online (Sandbox Code Playgroud)
现在,当我打电话时,someContext.SubmitChanges()这将调用InsertSomeEntity()我的域服务类中的服务器.将所有三条记录插入到数据库中的保证是什么,如果一条记录失败,所有记录都会失败?我们如何改变这些选择呢?
Chand的链接就是一个很好的例子.WCF RIA将为SubmitChanges提交一个包含所有3个Add的变更集.在您的DomainService中,您可以覆盖PersistChanges方法以完成事务.
public class SomeEntityDomainService : DomainService
{
SomeEFContext _someEFContext;
public SomeEntityDomainService()
{
_someEFContext = new SomeEFContext();
}
public void InsertSomeEntity(SomeEntity someEntity)
{
// Called 3 times in your example
_someEFContext.SomeEntities.Add(someEntity);
}
protected override bool PersistChangeSet()
{
// Called exactly once per SubmitChanges() in Silverlight
_someEFContext.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
所有这些都发生在从客户端到服务器的一个请求中,而不是3个请求.
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |