问题标签 [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 回答
996 浏览

asp.net - ASP.NET insert from bll to mysql

I am trying to make an insert to an MySql database using a three layer solution (or what it might be called).

I have done this may times with an MS-sql database and it has worked very well.

But now when I am trying to make an insert I get the the ID can't be null. I thought the database took care of that. If I write an insert directly in the code and use the MySqlCommand and executeNonQuery it works great.

Is it not possible to use BLL and DAL with MySql?

Error message:

System.Data.NoNullAllowedException: Column 'GiftID' does not allow nulls. at System.Data.DataColumn.CheckNullable(DataRow row) at System.Data.DataColumn.CheckColumnConstraint(DataRow row, DataRowAction action) at System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent) at System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Int32 position, Boolean fireEvent, Exception& deferredException) at System.Data.DataTable.InsertRow(DataRow row, Int32 proposedID, Int32 pos, Boolean fireEvent) at System.Data.DataRowCollection.Add(DataRow row) at PayEx.payexusersDataTable.AddpayexusersRow(payexusersRow row) in c:\Users\IT\AppData\Local\Temp\Temporary ASP.NET Files\payex\45bd406a\10c84208\App_Code.cyqhjqo7.1.cs:line 444 at PayExBLL.AddPayExUser(String Firstname, String Lastname, String Company, String Address, String Zip, String City, String Phone, String Email, Byte ContactMe, UInt32 Amount, UInt32 TransactionNumber, Byte Anonymous, String Currency) in c:\Users\IT\Documents\Visual Studio 2008\WebSites\payex\App_Code\BLL\PayExBLL.cs:line 66 at _Default.btn_next3_Click(Object sender, EventArgs e) in c:\Users\IT\Documents\Visual Studio 2008\WebSites\payex\Default.aspx.cs:line 191

My code:

0 投票
1 回答
445 浏览

c# - BLL 错误最佳实践

在 BLL 中返回业务规则错误的最佳实践是什么?我应该只引发异常并在表示层中捕获它们,我应该返回某种包含任何异常类型信息的对象吗?

0 投票
1 回答
1258 浏览

vb.net - GUI 到业务对象映射 VB.Net

我目前遇到的问题是将多个 GUI 字段映射到对象属性(即表示层到业务逻辑层的映射)。更具体地说,这是在 VB.Net 2.0 WinForms 中。

解决方案的性质要求我们有 4 列在我们的 GUI 上表现出相同类型的行为 - 每列由 11 个文本框组成(我们将只使用这个小样本量,因为问题超出了 11 个文本框)。

我目前正在做的是将所有四列中每个文本框的标签设置为如下值:

当文本框(例如按键)引发事件时,我查看父容器,我还将其标记设置为映射特定对象的字符串。我将它与文本框的标签结合使用来确定我需要设置的对象属性。总的来说,它看起来像这样:

如您所见,这可能会变得非常糟糕,而且很快。目前我们正在设置 43 一些可以映射到的奇怪属性——因此该 select 语句非常长——其中许多嵌入在多种方法中以尝试 DRY(我已将代码淡化为本质上的概念执行)。

问题是:我该如何重构它?我曾尝试在一定程度上使用字典/哈希,但它要么变得过于复杂,要么只是简单地没有实现意义,因为它使问题更加复杂。

谢谢您的帮助。

0 投票
1 回答
151 浏览

asp.net - 什么与 AspNetMembershipProvider 中的 DotNetNuke UserLogin 函数交互?

我试图找出与 AspNetMembershipProvider 部分的 UserLogin 函数交互的登录功能在哪里,没有提到登录功能存在的位置。我知道这是完整保存数据的功能,我只需要在源代码中找到登录的位置,以便我可以自定义登录(例如,基于用户角色、个性化消息等在登录时重定向)

有任何想法吗?

0 投票
1 回答
746 浏览

.net - 如何将 LINQ-to-SQL 映射到 BLL 类?

我正在考虑使用 LINQ-to-SQL 在我的应用程序中创建 DAL。我通常手动创建 DAL,因为我不是 ORM(太多抽象 IMO)的忠实粉丝,但我试图为不耐烦的客户节省一些时间。

我的问题是,如何将 LINQ-to-SQL 生成的类映射到 BLL 类?您是否只是将代码添加到由 LINQ-to-SQL 生成的类(它们是部分类)并且根本不创建 BLL 类(因此该类既可以作为 DAL 类也可以作为 BLL 类工作)或者您通常如何做它?

谢谢

0 投票
1 回答
1590 浏览

vb.net - 使用 AutoMapper 将 DAL 属性映射到 BLL 属性时出现问题

我有一个 BLL 类,其中包含 Country 表中字段的属性(CountryCode、CountryName 等)。它还有一个属性 ioDAL,它是对 DAL 类(使用 SubSonic 2.2 创建)的引用,该类具有相同的命名字段。

我有一个 LoadRecord() 方法,它调用 DAL 的 FetchById() 方法,该方法通过调用数据库(SQL Server 2005 FWIW)填充 DAL 属性。

然后我想要做的是使用 AutoMapper(来自 CodePlex),而不是编写代码来从其 DAL 等效项中填充每个 BLL 属性。我认为这条线应该是

但这会产生错误“类型的值(DAL 类/命名空间命名)不能转换为'System.Type'”和“类型的值(BLL 类/命名空间命名)不能转换为'System.Type'”。

有人可以给我一个关于这个电话应该是什么的指南吗?(VB.NET VS2005)


EDIT 13-Jan-10 - Jimmy 让我展示更多代码:

0 投票
2 回答
3427 浏览

vb.net - 如何在 3 层(单层)应用程序中在 BLL 和 UI 之间传递数据?

我是一个相当新手的程序员,正在尝试学习 n 层架构(DAL、BLL、UI)的基础知识。我正在编程的应用程序是用 VB.NET (.Net 3.5) 编写的单层 3 层应用程序。图层如下:

达尔

BLL

用户界面

COMMON - 现在包含 DTO。

我无法确定在 BLL 和 UI 之间传递什么。我的直觉告诉我,我应该只将数据传递给 UI,而不是来自 BLL 的完整业务对象。考虑两种情况:

1) 将 BO 直接从 BLL 传递到 UI。这暴露了 BO 方法并允许 UI 直接访问 BO,这似乎很糟糕。

2) 仅将相关数据从 BO 传递到 UI。例如,客户有姓名和地址。这些数据确实是我们想要在 UI 中显示/编辑的内容,因此我们只会将该数据返回到 UI 而不是完整的 BO。UI 然后会调用 BLL 来更新特定的 BO。

我倾向于使用#2,但我不知道实现它的最佳方法。我现在的编程方式是,如果我只从 BLL 返回数据,所有对我的 BO 的引用都将丢失,GC 将声明它们。基于此,我有一些问题:

1) 我应该在调用 BLL 之间保持业务对象处于活动状态吗?另一种方法是每次通过 BLL 传递数据时重新创建它们,这似乎是错误的。

2)在单层架构中保持 BO 存活的最佳方式是什么(如果我们不将引用传递给 UI,如何保存它?)

3) n 层应用程序如何做到这一点?他们是否让 BO 在 BLL 中存活并等待来自 UI 的更新?这是否需要在 BLL 中进行大量“簿记”以确保在不再需要 BO 时释放它们?

感谢您的任何见解,如果我问一些愚蠢的问题,请原谅我。我自学了一些我知道的小程序,所以我可能会问一个愚蠢的问题并且不知道。

0 投票
5 回答
2071 浏览

linq - Linq to SQL & 逻辑分区 (DAL, BLL)

我们将在 .Net 中重建我们的网站之一。我读过很多文章,非常喜欢将我们的项目分成数据访问层 (DAL)、业务逻辑层 (BLL) 和表示层的想法(我们来自经典 ASP,所以这对我们来说是一个巨大的进步)。我也很喜欢 Linq to SQL。

既然Linq to SQL的目标是快速开发,那么Linq to SQL真的可以有DAL、BLL和表现层吗?使用 Linq to SQL,DAL 会返回可能在 BLL 中修改的实体或 linq 代码吗?DAL 和 BLL 与 Linq to SQL 之间的关系似乎是一个模糊的话题,没有达成共识——因为这对我们来说是一个巨大的飞跃,我绝对希望在深入研究之前有一个好的游戏计划。

类型化数据集似乎更适合这一点,但如果我能用 Linq 得到类似的东西,我会走那条路。

我想远离 nHibernate 和其他 3rd 方库。

0 投票
1 回答
175 浏览

vb.net - How to notify a user (UI) from BLL and get their response?

Using VB 2008 .NET 3.5

I am working on an N-Layer desktop application.

Suppose a method in the BLL runs into an situation where the user needs to be notified and the method needs to wait for the user input (OK, Cancel, etc.) before continuing. How do you typically handle this?

Assume that this situation happens fairly often but not all the time, and is expected. It doesn't seem correct to throw an exception. The only solution I have so far is to raise an event with a custom EventArgs, and allow the UI to set some property in the custom EventArgs to reflect the user input.

Any other suggestions, or is the above technique commonly employed?

0 投票
1 回答
175 浏览

dns - DAL 应该是关系模型和域模型之间的转换层吗?

我认为我有答案的简单问题,但我正在寻找一个共鸣板。DAL 是否应该将来自数据库的任何内容(通过直接 SQL、存储过程、ORM 等)转换为业务层所理解的域实体?在单独的说明中,所有域实体是否应该由接口定义(如果没有别的,以最小化依赖关系)?