【发布时间】:2013-05-31 23:50:35
【问题描述】:
我的问题是关于 3 层架构。
我的项目大致如下所示,但是让我烦恼的是在我的数据库中插入一个新列之后,我必须更新除 BLL 之外的所有字段。在表示层,我创建了一个 OBJ 以及在 DAL 里面加上 DAL 里面,有一个 SQL 查询。我必须手动更新所有这些字段。
如果我以“正常”方式进行操作,我会将所有这些都放在表示层中并在一个地方进行更新。
我是否正确应用了这种 3 层架构?使用这种分层架构有什么优势?
我的第二个问题是:
在 DAL 内部,我通过 _view 收集数据。我想知道,我应该为每个视图编写另一个 BOboj 吗?我已经有一个 BOboj 类,但它不包含所有字段。
插入数据时,我必须使用我的 BOboj,但是,在列出数据时,我使用的是视图,在这种情况下,我应该为每个视图创建另一个 BOboj_view 类还是其他什么? 有什么简单的方法可以做到这一点?
例如; 我有 20 个视图和 40 个类映射到 sql server 上的每个表,我的视图收集数据不同的表(这意味着不同的对象)。除了代表视图的 40 个类之外,我是否应该再创建 20 个类?
OBJ
class BOboj {
private int _PId;
private string _Name;
.......
.......
}
DAL
BOboj_DAL {
public bool Add(BOboj obj)
{
using (SqlConnection con = Connect.connect)
{
string sql = "insert into Persons (Id,Name,
.......
.......
}
BBL
BOboj_BLL {
.......
.......
public bool Add(BOboj_DAL obj)
{
BOboj_DAL bb_dal = new BOboj_DAL();
try
{
return bb_dal.Ekle(obj);
}
catch (Exception)
{
throw;
}
finally { bb_dal = null; }
}
.......
.......
}
Presantaon 层
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL ();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_ );
}
谢谢。
【问题讨论】:
-
看看这个有用的问题 - stackoverflow.com/questions/3737848/…
-
是的,它是正确的实现。这种方法的优点是可以优雅地捕获每个级别的异常
-
感谢您的编辑。
标签: c# architecture data-access-layer layer bll