asp.net 三层 ,严重问题
想问个问题
我一直不太会 三层架构,用得不是得心应手,反而觉得三层很麻烦
我只是想写个 博客 练练手,可是发现写的过程中 有好多疑惑
下面是表结构,列出了必要字段
文章类别表:
create table Category(
@ID int,
@Name nvarchar(50)
)
文章表:
create table Article(
@ID int,
@Title nvarchar(200),
@content ntext,
@CID int -----------这个是文章类别ID
)
标签表:
create table Tags(
@ID int,
@Name nvarchar(50)
)
文章 与 标签 对应关系表(说明:文章可以有多个标签):
create table ArticleIDTagID(
@ID int,
@ArticleID int,
@TagID int
)
类是这样设计的:
class ArticleModel
{
int id;
int cid;
string title;
string content;
}
class ArticleDAL
{
public int ADD(ArticleModel Article) //返回添加的文章的标识 ID
public int DEL(int ID)
public list<ArticleModel>GET()
}
class TagModel
{
int id;
string Name;
}
class TagDAL
{
public int ADD(TagModel) //返回添加的标签的标识 ID ,如果数据库中已经存在此 名称 的 标签,返回 存在标签的ID
}
class ArticleIDTagIDModel
{
int id;
int ArticleID;
int TagID;
}
class ArticleIDTagIDDAL
{
public int ADD(ArticleIDTagIDModel) //添加文章 与 标签的 对应关系,如果存在 则不添加
}
//这个文章的ADD 是不能完成 所有任务的,因为还有标签的添加,我是这样处理的
//我觉得 这样写到这里 有点 不合理,这个只是添加 文章 ,就已经如此 复杂了,修改的时候就更复杂了,不知道 博主 有什么好的意见建议???
//觉得用三层 麻烦
//下面的操作 我是在 ADDArticle.aspx.cs 里面完成的
protected void Page_Load(object sender, EventArgs e){
//可是添加文章的操作 过程中 是比较复杂的
title =Request.Form["Title"];
cid = Request.Form["Cid"];
int Cid=Convert.ToInt32(cid);
content = Request.Form["Content"];
string Tags=Request.Form["Tags"]; //获得文章拥有的标签
int ArticleID= new ArticleDAL().ADD(new ArticleModel(title,Cid,content)); //获得添加的文章的ID
string[] Tags_Arr=Tags.split(','); //分割 标签 为数组
//添加标签,并添加 标签与 文章的 的对应关系
TagDAL tag=new TagDAL();
ArticleIDTagIDDAL aidtid=new ArticleIDTagIDDAL();
for(i=0;i<Tags_Arr.Length;i++)
{
int tagID= tag.ADD(new TagModel(Tags_Arr[i])); //添加标签
aidtid.ADD(new ArticleIDTagIDModel(ArticleID,tagID));//添加 标签与 文章的 的对应关系
}
}
答案:首先你觉得这么一点功能麻烦是因为你没怎么用过,刚开始都这样的,你可以在网上下载一个最简单的三层例子,看一下就ok了,很简单的,不要厌恶,很快就上手了,而且有可以生成三层的工具动软生成器和codesmith
其他:你没有理解什么是三层,你这样封装和没封装有什么区别呢?建议你去网上下一个动软生成器,生成一个项目看一下人家是怎么封装的,一看你就明白了! 三层刚开始写的时候可能会觉得比较麻烦,不过这个分层清楚点有利于代码的扩展,等写得多了就思维清晰了,就会发现分层很方便呃。
上一个:asp 如何获取单选按钮组中的值?
下一个:有关ASP的几个问题