我一直在寻找一个简单的解决方案,尽我所能倾向于像NHibernate这样的东西,但到目前为止我发现的所有东西似乎都试图解决一个稍微不同的问题。这是我在当前项目中看到的内容:
我们有一个IBM iSeries数据库作为用于我们核心业务(金融机构)的第三方软件套件的主存储库。我的团队所做的部分工作就是编写应用程序,以某种方式报告或关闭大量此类数据。在过去,我们一直在手动创建ADO .NET连接(顺便说一下,我们使用.NET 3.5和Visual Studio 2008)并手动编写查询等。
继续前进,我想简化从开发团队那里获取数据的过程。我不是每次都创建连接和查询,而是开发人员能够简单地做这样的事情:
var something = (from t in TableName select t);
理想情况下,他们只会获得一些IQueryable或IEnumerable生成的实体。这将在我正在构建的新域核心内完成,这些实体将存在,并且应用程序将通过请求/响应服务层与其进行交互。
需要注意的一些事项是:
有什么建议吗?看起来我正在做的就是超出正常的DAL / ORM工具/在线教程的要求,我还没有找到任何东西。或许我只是忽略了一些明显的东西?
答案 0 :(得分:1)
答案 1 :(得分:0)
添加到code4life的答案。
我最近在家里的宠物项目中使用了CodeSmith 2.6 我定制了模板以使用部分CRUD方法生成部分类 然后我扩展了部分类和部分方法以提供基本映射,例如当读取“Order”时,读取相关的“OrderLines”等。
类似的方法可能对您有用,并且更简单,因为实际上,您只需要RUD的CR:)
希望这有帮助。
P.S。我需要从CS 2.6切换到其他东西(可能是MyGeneration),因为2.6依赖于.Net 1.1,这是一个问题,因为我正在转向64开发机器。
<强>更新强>
我听到你了 有一个好的戳MyGeneration配偶,我们在这里使用CodeSmith工作,这就是为什么我在家里去了2.6(我快速浏览一下MyGeneration,没有立即得到它 - 这比我不得不给它更多的时间它 - 所以切换回CS)。
MyGeneration基本上是CS的开源版本。
另外,为什么不让它生成代码总是 - 你可以通过Partial Classes&amp; amp;部分方法,我知道你认为重新生成是过度的,但是经验告诉我,如果你不这样做,那么你需要它,就好像你拥有它一样需要它你永远不会注意到。