Entity framework 实体框架和业务层/逻辑
我正在对MVVM light-EF应用程序的体系结构进行一些自我研究 我正在尝试构建一个类似于产品/收据的应用程序。 我有一个Db/EF,其中包含一个多对多关系中的产品和收据表/实体。 然后我有一个DAL wich简单地使用Linq做简单的CRUD 问题是在哪里以及如何将我的业务逻辑放到这个应用程序中 我想到了几个主意 选项1 -制作收款BO(收款业务对象) 它继承实体收据类和Icollection(ProductBo) ReceiptBo类将负责添加产品、计算总计和小计,并调用Dal进行插入。 也许这个选择有点过分了 选项2 -使用分部类将计算方法放入生成的实体对象中 只需使用BuisnessLayer调用Dal。 在我看来,这将使Buisnesslayer类过时,我不确定实体类是否应该用于业务逻辑 选项3 -创建业务类,但不要麻烦使用继承,只需将产品添加到实体中,并在实体中进行计算,然后调用Dal进行插入。 威奇看起来很简单,但不是很优雅 选项4 -以上这些我都不知道 现在我不使用WCF,但我的想法是,我想让这个应用程序松散耦合,这样它将很容易实现,并进一步扩展它 我也有点困惑什么是业务层。在一些例子中,它更像是一个Dal,也进行计算,然后其他人说这是没有做到 帮点忙就好了。thxEntity framework 实体框架和业务层/逻辑,entity-framework,mvvm,Entity Framework,Mvvm,我正在对MVVM light-EF应用程序的体系结构进行一些自我研究 我正在尝试构建一个类似于产品/收据的应用程序。 我有一个Db/EF,其中包含一个多对多关系中的产品和收据表/实体。 然后我有一个DAL wich简单地使用Linq做简单的CRUD 问题是在哪里以及如何将我的业务逻辑放到这个应用程序中 我想到了几个主意 选项1 -制作收款BO(收款业务对象) 它继承实体收据类和Icollection(ProductBo) ReceiptBo类将负责添加产品、计算总计和小计,并调用Dal进行插入。
ps:很抱歉我的英语不好真的,我会在这里简单介绍一下,然后选择一个通用的多层体系结构,设计如下:
- 数据访问层(基本上是实体框架模型和所有实体)
- 一个业务层,公开访问实体的方法(CRUD方法+任何运行某些逻辑的自定义方法)
- 通过WCF(服务+数据契约)公开无状态方法的服务层
- 表示层(在使用MVVM模式的情况下)
- 视图(XAML页面)
- 视图模型(C类)
- 模型在这里由服务层通过WCF公开的实体表示
我不会直接在实体中添加任何方法。所有方法都在业务层中定义,并由服务层公开。通常我将业务逻辑保存在我的
视图模型中,而不是我的模型中,并且我将EF对象视为模型。最多,他们会有一些基本的数据验证,比如验证长度或必填字段
例如,editReceiptViewModel
将验证业务规则,例如验证值是否在特定范围内,或者验证用户是否有权编辑对象,或者在值更改时执行一些自定义计算
另外,不要忘记ViewModels
应该反映视图,而不是Model
,因此不是每个Model
都有自己的ViewModel