【发布时间】:2015-06-02 19:07:50
【问题描述】:
我有一个 WCF 服务,它包含一个实体框架模型。我的类有一个时间戳属性,所以冲突的更新应该抛出一个 OptimisticConcurrencyException。我的问题是,在不假设客户端是 .NET 的情况下将此异常传递给客户端的最佳方法是什么?
因此,我将概述一种方法,我认为它可以说明问题。这是一个带有异步方法的 WCF 服务:
[ServiceContract]
public interface ICarService
{
[OperationContract]
[FaultContract(typeof(OptimisticConcurrencyException))]
Task UpdateCarAsync(Car obj);
}
那么,这里是一个 ASP.NET MVC 客户端:
try {
await this.repo.UpdateCarAsync(theCar);
}
catch (FaultException<OptimisticConcurrencyException>) {
ModelState.AddModelError(string.Empty, "Optimistic Concurrency Exception");
}
在这种情况下,WCF 服务的客户端知道 OptimisticConcurrencyException,因为它已经是一个 .NET 客户端。但是,如果这是从其他语言调用的呢? OptimisticConcurrencyException 不应该有某种抽象吗?
我想我真的错过了一些东西。所以,一个合适的例子会很有帮助。
【问题讨论】:
标签: .net entity-framework wcf