C#:好自由(没有gpl!)ActiveRecord lib

时间:2011-01-25 05:38:36

标签: c# database activerecord licensing

问题很简单,我想开发一个广泛使用数据库的程序(winforms),它将使用System.Data.SQLite(或者lib应该以某种方式支持sqlite,即使是暗示编写查询我自己)并且我喜欢与ActiveRecord一起使用的方法(好吧,我在cakephp中使用它,而不是在红宝石中)

我读到了“城堡”框架,但它说它需要NHibernate而且我不知道许可证问题以及关于NHibernate的事情(我不知道它是如何工作的!)

我发现这个页面建议了很多框架......但是我不知道应该选择什么:http://csharp-source.net/open-source/persistence/castle-activerecord

那些ActiveRecord库是否支持数据库“缓存”(在c#中的某些集合中存储内容)以避免每次重新查询?

感谢您的任何建议

重要的事情:我不想重新查询源代码,可能我想使用免费的框架,程序的费用不会超过500-600欧元......我可以'提供许可证(这是“亲戚”,我不能以正常价格出售)

应该以某种方式支持数据库视图(在这种情况下,SQLite在类型方面存在一些问题)

更新1:我没有使用SQlite,如果有办法让像SQLite这样的单文件数据库这样做,很明显我的许可证问题......我会喜欢使用像MySQL这样的查询(MSAccess略有不同,需要办公室)

3 个答案:

答案 0 :(得分:2)

SubSonic是一个

的ORM
  • {li> Licensed位于New BSDMS-Pl下,因此您无需向源代码发布更改
  • 支持ActiveRecord模式(以及其他几种模式)
  • 适用于SQLite
  • 似乎学习曲线较低

答案 1 :(得分:0)

为什么不将LinqToSql或LinqToEntities与SQL CE 4.0数据库一起使用?

所有这些都是Microsoft作为Visual Studio 2010的一部分提供的,因此您不会有任何许可证问题。

答案 2 :(得分:0)

虽然我在问题中写了“没有gpl”,但我明白我误解了“LGPL”许可证,它不需要你必须发布你的应用程序源代码而只需修改lgpl'ed源代码......这非常有趣(这个东西也适用于GPL吗?)。

读完之后,我指向Castle ActiveRecord(基于NHibernate),实际上非常好

但是,网站上的示例“过时”不是“城堡”方面,而是“nhibernate”方面,实际上所有连接字符串和配置都是不完整/错误的,并且与.NET 4.0不兼容因为你必须知道如何在.NET 4.0下运行System.Data.SQLite,而在.NET 2.0中开发。虽然听起来很难,但你只需用1行编辑app.config文件就可以了,这不是什么大问题。

但是,你必须通过观察调试器和异常来理解所有这些错误。经过3-4个小时的搜索/测试/类似的事情,我设法使它与sqlite和mysql一起工作(使用mysql测试之前更容易)。

真的很好,我希望这个答案对其他人也有用。

特别感谢Michael Maddox