我正在自学 MVVM-light - EF 应用程序的架构 我正在尝试构建一个类似产品/收据的应用程序。 我有一个 Db/EF,其中包含多对多关系的产品和收据表/实体。 然后我有一个 DAL,它只使用 Linq 来执行简单的 CRUD。
问题是在何处以及如何将我的业务逻辑放入此应用程序中。
我想到了一些想法
选项 1 -制作一个ReceiptBo(收据业务对象) 继承Entity Receipt类和Icollection(ProductBo) ReceiptBo 类负责添加 Product、计算总计和小计并调用 Dal 进行插入。 也许这个选项看起来有点大材小用。
选项 2 -使用分部类将计算方法放入生成的Entity对象中 并简单地使用 BuisnessLayer 来调用 Dal。 在我看来,这将使 Buisnesslayer 类过时,并且我不确定实体类是否应该用于业务逻辑?
选项 3 -创建业务类,但不必使用继承,只需将产品添加到实体并在那里进行计算并调用 Dal 进行插入。 看起来很简单,但不太优雅。
选项 4 -以上都不是,我一无所知
现在我没有使用 WCF,但我的想法是我想让这个应用程序松散耦合,以便很容易实现它并进一步扩展它。
我对什么是业务层也有点困惑。在某些示例中,它更多地像 Dal 一样使用,也进行计算,然后其他人说这还没有完成。
一些帮助会很好。谢谢
ps:抱歉我的英语不好
最佳答案
真的,我会在这里简单地选择一个通用的多层架构,设计如下:
- 数据访问层(基本上是您的 Entity Framework 模型以及所有实体)
- 业务层,公开访问实体的方法(CRUD 方法 + 运行某些逻辑的任何自定义方法)
- 通过 WCF(服务+数据契约)公开无状态方法的服务层
- 表示层(在您的情况下使用 MVVM 模式)
- View (XAML 页面)
- ViewModel(C# 类)
- 模型在此由服务层通过 WCF 公开的实体表示
我不会直接在实体中添加任何方法。所有方法都在业务层定义,并由服务层公开。
关于entity-framework - Entity Framework 和业务层/逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9328941/