BLL、DAL、BO是什么意思?插入数据相关的操作。

4
我需要您的建议。我正在尝试在ASP.NET中开发一个三层架构,将BBL、DAL和BOboj分离。
在DAL内部,我通过_view收集数据。我想知道,对于每个视图,我是否应该编写另一个BOboj?我已经有了一个BOboj类,但它并不包含所有字段。
插入数据时,我必须使用我的BOboj,但是在列出数据时,我应该创建BOboj_view类还是其他类?
插入数据(我的列仅包含这些值):
BOboj {
        private int _PId;
        private string _Name;
        private int _ClassId;

}

数据列表

BOboj_view {

        private int _PId;
        private string _Name;
        private string _ClassName;
}

什么是最佳解决方案,

谢谢。

1个回答

3
BLL与Presentation层(ASP.Net页面)交互,DAL与数据库(SQL、Oracle等)交互,BO是BLL和DAL之间交换的对象。
您不必为列出和添加数据创建另一个BO。您可以使用同一个BO对象来实现这两个目的。
参考文献: http://msdn.microsoft.com/en-us/library/aa581779.aspx 将要用于单个对象的所有内容放在以下位置:
BOboj {
        private int _PId;
        private string _Name;
        private int _ClassId;
        private string _ClassName;
}

SqlCommand cmd = new SqlCommand("SPName");

cmd.Parameters.AddWithValue("@PID", obj.PID);
cmd.Parameters.AddWithValue("@Name", obj.Name);
cmd.Parameters.AddWithValue("@ClassID", obj.ClassID);

cmd.ExecuteNonQuery();

我传递对象,而不是像这样传递值:productLogic.UpdateProduct("Scott's Tea", 1, 1, null, -14m, 10, null, null, false, 1); - user1865552
你的问题是“我应该创建BOboj_view类还是其他什么?”答案是“不需要”。你可以使用相同的BO对象在不同层之间传输数据。 - TTCG
在插入数据时,我需要将“private string _ClassName;”和其他变量赋值为空,这不会导致冗余或在插入或读取数据时抛出异常吗? - user1865552
如果您在数据插入中没有使用ClassName,那么您就不必担心。请查看我的最新答案。 - TTCG
谢谢你的回答。我们在插入数据时也在做同样的事情。但我的问题不同。请看,我有20个视图和40个类与sql server中的表映射,所有视图收集不同的表(即不同的对象)。我是否应该创建另外20个类除了40个?我希望我能够表达清楚。 - user1865552
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接