首先谢谢各位看官进来。我对设计模式并不精通,只是很浅显地看过一些书。对于降低对象间的耦合度,我很赞同。但是在实际编程中,对于对象解耦后的连接操作如何高效地完成还很困惑。例如:三个表,Sales,Product和Transactions。Sales包含SalesID和 SalesName字段,Product表中包含ProductID, ProductName, ProductPrice字段,Transaction表中包含TranID, Product表中包含TranactionID, SalesID, ProductID, TransactionDate, Quantity等字段很容易联想到创建Sales, Product和Transactions三个对象,并将各自的操作封装起来,降低耦合度。但是,往往我们需要通过SQL中类似JOIN的操作将表连接起来,例如:
SELECT * FROM Transaction
INNER JOIN Sales ON Transaction.SalesID = Sales.SalesID
INNER JOIn Product ON Transaction.ProductID = Product.ProductID
WHERE
Transaction.TransactionDate > '...'
AND Sales.SalesName LIKE '%...%'
AND Product.ProductPrice < '...'那么,如何在程序上下文中,有效地通过Sales,Product和Transaction的对象的实例来获得相应的对象集合呢? 当然,获取所有记录,通过循环来遍历这种做法肯定很容易想到,但绝对不是高效之举,还望各位通道多多指教,谢谢
SELECT * FROM Transaction
INNER JOIN Sales ON Transaction.SalesID = Sales.SalesID
INNER JOIn Product ON Transaction.ProductID = Product.ProductID
WHERE
Transaction.TransactionDate > '...'
AND Sales.SalesName LIKE '%...%'
AND Product.ProductPrice < '...'那么,如何在程序上下文中,有效地通过Sales,Product和Transaction的对象的实例来获得相应的对象集合呢? 当然,获取所有记录,通过循环来遍历这种做法肯定很容易想到,但绝对不是高效之举,还望各位通道多多指教,谢谢
解决方案 »
- 。。。用VS2003,读取COM口内容。。扫描枪的,事件怎么触发?使用JustinIO.cs类
- 这个 WEB 进度条问题出在哪儿?
- 问个app.config的问题
- select查询问题,这次提问的清楚些
- 初学类库问题
- C#调用执行DTS包时,怎么获得DTS包的执行进度.
- 求助,WPF中如何获取<DataTemplate>中的控件
- C#中WEBFORM如何用ODBC联接数据库
- 请问用C#如何连接SyBase数据库(除ODBC外)
- 我现在需要一个程序向互联网上另一个发送数据(XML),服务器端我不想用web service,因为那样还得装IIS,有其他比较简便的方式吗?
- 有关c与c#的编程中两个问题!!
- 如何实现限制用户使用WEB邮箱及文件的下载?
如果你想查找效率高的话,用个HashTable不就OK了,将Transaction用个HashTable去实现就可以了。我觉得这个是查找问题,跟对象的Inner join没有关系。