2011-05-20 54 views
5

我被分配用于维护一堆具有大量存储过程的旧应用程序,这些应用程序在'05之前没有ORM时构建。与我一起工作的开发人员不知道实体框架,也不知道LINQ,也不想学习。在.NET上建议一个简单的ORM - 用于维护旧版应用程序的设计

.NET上是否有任何ORM提供了一个简单的对象接口到现有的数据库表和存储过程?

如果能让我编写几行代码来获取每个表的类,并且它具有与每列中的数据相对应的属性以及解决外键关系/多对多关系的一些方法或属性,很多关系 - 前进和倒退。

例如,储存一个员工和部门记录

Employee e = new Employee("John", null); 
Department d = new Department("QA"); 
d.save(); 
e.department = d; 
e.save(); 

无需编写INSERT SQL语句。

编辑: 我使用MS SQL Server 2008的

+1

三个词,LINQ To SQL! – 2011-05-20 17:09:53

+0

再次看到我的Q,LINQ不会吸引我与之合作的开发人员。 – kakarukeys 2011-05-20 17:13:01

+0

你刚才说的是他们并不急于学习。这并不意味着Linq是一个不好的选择。如果没有一行代码,您可以从表中获取所有属性和类 – 2011-05-20 18:37:00

回答

4

看一看罗布科纳的Massive。这很简单,看起来很容易使用。不过,它看起来需要.NET 4。

+0

它非常接近我想要的,但唉....它只能在.NET 4.0上运行。 – kakarukeys 2011-05-20 17:22:30

+0

Shucks。听起来像Kamyar有最好的想法。祝你好运! – SquidScareMe 2011-05-20 17:23:46

+1

Massive看起来很有趣。还没有听说过。谢谢... – Kamyar 2011-05-20 17:25:30

0

我在.NET 2.0项目中使用了Subsonic,这很不错。不幸的是,它似乎并没有被开发出来。

0

NHibernate也可能是一些东西可以看看,虽然我个人并不喜欢原来的Java Hibernate非常多,但那是几年前。我也定期使用SubSonic。最新的SubSonic更多的是Linq,但特别注意其“ActiveRecord”功能。我认为它涵盖了你正在尝试做的基于对象的东西。除了偶尔的错误修复之外,SubSonic的发展不会再发生,但它是开源的,并且有一个Google小组负责支持问题。它也支持很多数据库,因为你没有提到你正在使用的数据库。

3

我建议你使用PetaPoco,这个挺新鲜的ORM带有简单易学的界线。

从作者网站:

PetaPoco通过罗布科纳庞大的项目,但对于非动态POCO对象使用了原来的启发。这是因为我发现我的许多项目使用SubSonic/Linq的速度很慢,或者成为Linq和CodingHorror的混合包。

我需要一个小巧,快速,易于使用,并且可以在.NET 3.5和/或Mono 2.6上运行的数据访问层(即:不支持动态展开)。 Rob声称Massive仅仅是400行代码,并且我想知道是否有类似的东西可以在没有动态的情况下完成。

相关问题