我对使用今天发布的新 EntityErrorsException 非常感兴趣。但是我的同事实现服务器端逻辑的方式可能是个问题。
在 webAPI 控制器中,我们使用了自己的 contextProvider,它继承自微风的 EFContextProvider。请参见下面的代码:
public class SepaContextProvider : EFContextProvider<CompanyName.BLL.BLDirectDebitContext>
{
public MyContextProvider() : base() { }
}
如您所见,通用参数是一个 BLDirectDebitContext,它继承自数据访问层中定义的 DirectDebitContext 类:
public class DirectDebitContext : DbContext{
}
这样,通过覆盖 ValidateEntity() 在 BLDirectDebitContext 类中验证实体,因此如果从桌面应用程序(不使用 webAPI 甚至轻而易举)调用此代码,则不必重新编写验证逻辑.
理想情况下,我们可以在这里创建 EFEntityError 对象并抛出 EntityErrorsException。但这意味着在我们的业务层中引用breeze.webapi dll,考虑到依赖项的数量,这听起来不太好。
将微风.webapi dll 拆分为不同的 dll 不是更有意义吗?还是我们的方法没有任何意义?