设想
我正在为我的最新项目使用 SubSonic。首先要做的事;这个项目仅限于使用 .net 3.0 并且 SubSonic 非常棒。我喜欢它。
但是,我在自定义方面遇到了一些麻烦。客户要求我们使用两个 SQL Server 2005 数据库,其中一个将复制另一个,减去一些列。
乍一看,这似乎很简单。但是,SubSonic 默认抓取所有列,导致 SQLExceptions。我想优雅地逐个表地限制选择列表。
例如,下面的代码可以解决问题,但我宁愿每次新查询时都不需要这样做:
Query q = Post.Query().WHERE(Post.Columns.PageId, page_id);
if(UsingReplicatedDB)
q.SetSelectList(ReplicatedPostColumnList);
return q.ExecuteReader();
问题
上述方法使我的代码膨胀,并且不适用于FetchByX
SubSonic 生成的内置方法。有没有办法在一个表格的基础上优雅地设置默认的 SelectList ?
笔记
我曾尝试在运行时在我的部分类中从模式中删除列,但是看起来像ColNameColumn
在集合中查找特定索引的列,Columns
所以我的计划被挫败了。
我知道我知道
请不要“你是个白痴,你为什么要这样做?” 答案。我知道很可能有更好的方法,这似乎有点老套,但这就是我要说的。我需要一个不纠缠的解决方案。