请教如何设计,主-子表结构的业务逻辑层(简单设计讨论!谢!)

tammy2net 2005-12-12 09:15:32
请教如何设计,主-子表结构的业务逻辑层
如:主表StockNote(NoteId,CreateDate)
子表StockNoteItem(NoteId,NoteItemId,ProductId,Amount



业务逻辑类如下:
---------------------------
#region 入库单实体。
public class StockNote
{
public StockNote()
{}

private string _NoteId;
public string NoteId
{
get{return this._NoteId;}
set{this._NoteId=value;}
}

private string _CreateDate;
public string CreateDate
{
get{return this._CreateDate;}
set{this._CreateDate=value;}
}

public void Add()
{
/*执行insert into stocknote (_NoteId,_CreateDate)*/
}

public void delete()
{
/*执行delete stocknote where (_NoteId)*/
}

}
#endregion

---------------------------
#region 入库单子表实体。
public class StockNoteItem
{
public StockNoteItem()
{}

private string _NoteId;
public string NoteId
{
get{return this._NoteId;}
set{this._NoteId=value;}
}

private string _NoteItemId;
public string NoteItemId
{
get{return this._NoteItemId;}
set{this._NoteItemId=value;}
}

private string _ProductId;
public string ProductId
{
get{return this._ProductId;}
set{this._ProductId=value;}
}

private int _Amount;
public int Amount
{
get{return this._Amount;}
set{this._Amount=value;}
}

public void Add()
{
/*执行insert into stockNoteItem

(_NoteId,_NoteItemId,_ProductId,_Amount)*/
}

public void delete()
{
/*执行delete stockNoteItem where

(_NoteId,_NoteItemId)*/
}

}
#endregion

---------------------------

--
因为主-子表是 多对一的 所以这样简单的类设计
不能满足要求,请问各位常用的业务逻辑 应该如何写
谢谢
我最不喜欢的就是 主表用类,子表用DataTable

这样不是面向对象的。
我要简单面向对象的。
欢迎各位讨论,发表意见哈,谢谢!!

...全文
206 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tammy2net 2005-12-14
  • 打赏
  • 举报
回复
CSDN 真的是没高手回答wenti问题了
huangyj 2005-12-12
  • 打赏
  • 举报
回复
呵呵,帮你顶
terryshi 2005-12-12
  • 打赏
  • 举报
回复
主表建一个Arraylist,里面存放子类。
tammy2net 2005-12-12
  • 打赏
  • 举报
回复
没人回答 我自己顶!!!
========================
◆数据集的表示方法。

  采用这种方法,通常是直接把从数据库查询中获取的数据集(Recordset)作为数据处理对象。这种方法在ASP应用程序中是非常常见的做法。这种做法简单,初学者很容易掌握,但是他不是一种面向对象的方法,弊病也很多。


DataTable
DataSet


tammy2net 2005-12-12
  • 打赏
  • 举报
回复
没人回答 我自己顶!!!

数组的表示方法.txt

public class Form

{

public string ID; //入库单编号

public DateTime AddTime; //入库时间

public FormDetail[] FormDetails; //入库单明细

}

public class FormDetail

{

public Product InProduct; //入库产品

public int Count; //入库数量

}


例如,上面的例子中当一张入库单包含多条入库单明细的时候采用的方法。为了灵活性,也可以使用容器来,如Java中的Vector或C#的ArrayList(C#)。只是,在处理对象的时候,需要一个类型转换的操作。这个问题,在支持泛型的语言中不会存在,如使用C++的标准库的容器类。
tammy2net 2005-12-12
  • 打赏
  • 举报
回复
主子表 是 一对多 不好意思,笔误,汗~~谢谢指正。
terryshi 2005-12-12
  • 打赏
  • 举报
回复
"主-子" + "多对一"
主子是不是搞反了?
  • 打赏
  • 举报
回复
up
jackbaby 2005-12-12
  • 打赏
  • 举报
回复
雄起,好深奥阿,呵呵
tammy2net 2005-12-12
  • 打赏
  • 举报
回复
没人回答 我自己顶!!!
========================

public class FormDetailsCollection: ArrayList

{

public void Add(FormDetail detail)

{

base.Add(detail);

}

public new FormDetail this[int nIndex]

{

get

{

return (FormDetail)base[nIndex];

}

}

}



这个方法同上面的方法类似,不同之处在于,为每个实体类设计一个Collection类。例如,可以为FormDetail设计一个FormDetailsCollection类(C#):

这么做的好处在于,在操作集合中的对象时,不必进行类型转换的操作。

---------------
注:上面3段设计,都是再博客里找的,还不知道有什么更好的方式不?

请大家赐教,谢谢
tammy2net 2005-12-12
  • 打赏
  • 举报
回复
谢谢 terryshi(terryshi) ( ) 信誉:100
主表建一个Arraylist,里面存放子类。
==================================================
主-子表 是企业业务逻辑最基本的
所以我很希望做好!!!!!!
请大家多多继续回答阿 谢谢

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧