问题标签 [bll]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
268 浏览

c# - 如何让业务层对象创建同一个数据访问层对象的多个实例

到目前为止,业务层正在实例化我需要的 DAL 对象的一个​​实例:

一组新的前端应用程序需要访问 4 个不同服务器上的数据(具有 4 个不同连接字符串的相同数据访问层实现)。

一种方法是让 Ui 实例化 4 个 BarcodeBLL 对象并完成我在任何情况下都不想要的工作,因为我会将业务逻辑转移到 UI。

所以我必须找到一种根据 UI 应用程序实例化 1 到 4 个 DAL 实例的正确方法。

一个想法是传递 aList<ERPConfig>和/或 aList<BarcodeDALConfig>并让构造函数(???)以某种方式决定要做什么。

我开始这样做:

这就是我要找的..

为清楚起见的附加信息:

我现在看到的目标是让 BLL 中的一个方法能够获取 1 到 4 个 DAL 对象并在每个对象中执行方法。

可能的场景:

UI 询问来自 2 个国家的 BLL 方法 GetItemList 数据。

Bll 必须以某种方式使用正确的连接字符串创建 2 个 DAL 对象并完成其工作。

因此,我正在整合 BLL 中所有服务器的操作,并让 DAL 独处。

0 投票
1 回答
237 浏览

entity-framework - 如何/应该在 UI/BL 层中设置 EntityState?

我有如下分层:

UI - Web App => 引用 BLL 和实体

BLL - 业务逻辑(验证)=> 参考 DAL 和实体

实体 - 数据载体 (POCO) => 无参考

DAL - 数据上下文 EDMX => 无参考

我有一个非常基本的问题,因为这是我第一个绝对隔离的项目。如果我想在 UI 级别设置我的对象的 EntityState (Added/Modified/Deleted),我该怎么做。因为使用上述结构,我将无法访问DataContext

因为据我所知设置实体状态,数据上下文是一项任务。

我已经阅读了很多关于 SO 的问题,但没有人能澄清这个疑问。我知道另一种方法是维护自定义 State 属性@实体级别。

我已经读过 datacontext 应该限于 DAL。将 EntityState 设置为 @BLL/UI 是一种不好的做法吗?

我是这种架构的 EF 新手。请帮忙。

我已经经历了以下So问题但没有弄清楚,可能是由于我对SOC缺乏了解:

1.哪一层应该创建DataContext?

2.为什么服务层不应该引用 DbContext 对象?

3.如果 Entity Framework / DbContext 是 DAL / Repository,它在 3 层架构中的位置是什么?

4.实体框架和层分离

4.如何更新在 DbContext 之外修改的实体?

编辑 1: 我仍然关心的一件事是在 DAL 中再次循环遍历对象层次结构,只是为了设置它们的 EntityState。我有一个非常嵌套的层次结构。如果我必须在平面结构中做同样的事情,我将不得不在填充对象的 UI 中设置一次,然后可以调用 context.savechanges()。

但是在这里我为实体创建了一个虚拟状态属性,我可以设置@UI,然后将其转换为EntityState.Modified @DAL。这是一个正确的方法吗?

0 投票
1 回答
150 浏览

data-access-layer - 在 DAL 中引用我的模型

祝大家新年快乐。好的,我正在尝试创建一个 3 层应用程序,并且我的引用按以下顺序 UI -> BLL -> DAL。问题是。我遇到的问题是 Dbset。因为我在 DAL 中没有引用我的模型,所以 dbset 失败。

如果它在我的 BLL 中找不到我的 SomeModel 类,我该如何让它工作?任何帮助将不胜感激。

0 投票
1 回答
749 浏览

c# - BLL 和 DAL 中的不同模型

因此,我正在尝试学习如何在 WPF 应用程序中保持良好的结构,并且很难找出使用 BLL 和 DAL 的最佳方式。

我的 BLL 中已经有几个模型,例如:

客户、账户等

我还使用 MVVMLight 工具包让事情变得更容易,所以几乎我所有的模型都继承自“ObservableObject”。

现在我要创建 DAL 并使用实体框架。由于我所有的模型都使用 ObservableObject 我觉得我不能只将它们移动到我的 DAL 来创建我的表(代码优先)。

这里最好的方法是在我的 DAL 中创建几乎相同的对象,并在我检索它们时将所有数据映射到我 BLL 中的旧模型?我知道这有点双倍的工作,所以但看不出我怎样才能让它更干净(除了停止从 ObservableObject 继承)

0 投票
2 回答
1370 浏览

c# - 使用asp.net c#返回一个有效的数据集

当我从下拉列表中选择一个值时,我不断收到错误消息。

**The SelectCommand property has not been initialized before calling 'Fill'.**

看起来我的数据集返回为空。

我想坚持 3 层结构。

如何使用我的代码返回有效数据集?

达尔

BLL

看起来我下面有一些冗余代码。我想在下面使用我的连接类:

连接类

PL

0 投票
1 回答
1785 浏览

c# - Repository pattern: DAL or BLL

I'm trying to implement a business logic layer with a few use case for saving data of Booking of a Vehicle. I'm a bit confused as to where the Repository pattern should be implemented. Should I use it in BLL or DAL? It sounds very basic but I'm kind of lost in the design phase. If Repository pattern is not suitable for BLL, then which one is. Any help/tips are appreciated.

0 投票
2 回答
123 浏览

c# - SettingsProvider 类 - 它应该在 DAL 还是 BLL 项目中?

我的应用层有:Web、DAL 和 BLL。

我应该在哪里放置 SettingsProvider 类(从 web.config 获取值)?我认为它应该在 DAL 项目中。我对吗?

0 投票
1 回答
63 浏览

architecture - 不同类型的 BLL 类(仅适用于 DA VS BL 的适配器)

我正在开发我的第一个多层 MVC 应用程序。一款纸牌游戏。

我有3层如下

| 演示(MVC)| --> | BLL | --> | DAL(回购/工作单元模式)|

DAL 大多是通用的,我的 BLL 几乎为每个表映射 1-1。

现在我有“特殊”课程,只处理纸牌游戏逻辑(例如检查手牌是否有效,检查是否有人赢了)。这些类不需要与数据库通信。附加类:卡片、播放器。

将这些仅包含逻辑且不需要与 DAL 通信的类放在哪里对我来说最好?一个额外的项目?也许只是调整我的命名约定?

非常感谢任何输入!

0 投票
1 回答
708 浏览

c# - 无法访问 ASP.NET 上的 BLL 类

我正在ASP.NETC#上创建一个 Web 应用程序。我遇到的问题是我无法在页面后面的代码上创建 BLL 类的实例。

我有登录页面 ( LogIn.aspx ) 和控制登录页面 ( LogIn.aspx.cs ) 的页面。当我在LogIn.aspx.cs上并尝试执行以下操作时:UsersBLL _users = new UsersBLL(),我收到缺少 using 指令或程序集参考消息。

我可以通过右击UsersBLL.cs类 > 属性 > 构建操作并将内容更改为编译来修复它。

此时,我可以在 LogIn.aspx.cs 上创建 UsersBLL.cs 类的实例但是该类“损坏”并且无法识别任何“DataSet 指令”(请参阅​​图像以了解它...)

我应该怎么做才能修复它?

预先感谢您的回答!

“损坏的”UsersBLL.cs 类

0 投票
2 回答
92 浏览

c# - BuisnessLogic MVC 中的重复代码

我正在研究 MVC 解决方案,我的 DAL 层可以使用存储库类来解决,一切都很好。

但是在我的 BLL 层中,我有重复的代码:

我的 Crud 是一样的,我的领域和建设者是不同的。我还可以有一些额外的方法。

有没有办法以正确的方式解决这个问题?

1级

2 级