当前位置:  开发笔记 > 编程语言 > 正文

将业务层添加到ADO .NET实体框架

如何解决《将业务层添加到ADO.NET实体框架》经验,为你挑选了0个好方法。

我正在开发我的第一个.NET项目(.NET 3.5,ADO.NET和C#).我们已经构建了我们的实体模型,并且正在尝试构建一个干净的业务对象层.

我们已经获得了基本的实体模型,并且我们希望将某些业务级语义添加到默认数据访问器(导航属性等).

例如,让我们假设,我们之间有很多一对多的关系PersonBankAccounts.让我们假设在业务层我们想添加冻结帐户的功能.我们现在希望能够从Person导航到:

他们所有的银行账户,

他们的非冻结银行账户,和

他们冻结的银行账户.

当然,我们希望将名义案例作为默认情况:如果我导航,Person.BankAccounts()我希望它返回非冻结帐户.我可以添加导航属性Person.FrozenBankAccounts()Person.AllBankAccounts().

我们提出的两种方法似乎都有相当多的代码味道.

    我们找不到覆盖实体模型方法的方法.因此,请将其Person.BankAccounts()作为返回所有银行帐户的访问者.然后我们添加一个Person.FrozenBankAccounts()和一个Person.NonFrozenBankAccounts().

    将另一个显式层添加到包装所有访问的代码库中BankAccounts.

方法1的问题在于,名义商业案例(访问未冻结的银行账户)是该批次最不直观的方法名称.

使用方法2,当我们从实体模型层继承对象时,我们必须覆盖每个方法以确保它不会从底层返回对象.所以我们创建一个BL_Person有一个BankAccounts()返回BL_BankAccount对象集合的方法.但在这种情况下,所有代码似乎都有些愚蠢.

有没有比我们考虑过的更好的方法?如果没有更好的方法,我所概述的两个中哪一个似乎是更好的解决方案(鉴于我们需要使用50多个课程)?

注意:在进行网络搜索时,我确实找到了一封给微软的公开信,题为" ADO .NET实体框架不信任投票"似乎意味着没有一种好方法可以明确区分关注点.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有