entity-framework - Entity Framework 和业务层/逻辑

标签 entity-framework mvvm

我正在自学 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/

相关文章:

java - 如何在使用 mvvm 模型时绑定(bind) zk 中字符串的一部分

silverlight - 在 HTML5 中使用 MVVM 编码模式的合理方法是什么

.net - 为什么 IEnumerable 比 IQueryable 快?

c# - 在 DDD 的哪一层将类声明为聚合根?

entity-framework - LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且无法将此方法翻译成存储表达式

c# - 绑定(bind)中的WPF父子关系

c# - 使用 MvvmLight.Messaging.Messenger 实例化新的 View + ViewModel (Window)

c# - 使用 stub 实体更新实体关系时出现问题

c# - Entity Framework 在运行时更改连接

c# - 更改 WPF TreeView 中按钮的字体粗细