1. 单独对象简单属性操作
2. One 2 Many 操作
3. Many 2 Many 操作
4. Query的自定义查询操作。
http://www.cnblogs.com/Jerry-Chou/archive/2009/11/02/light-weight-orm-for-net-publishing.html
实在是非常简单。。。单个表对象的orm映射操作。每天有参考价值
http://www.cnblogs.com/huobazi/archive/2008/01/31/dbentry.html
1. 继承了DbObjectModel<Book>, 抽象类
貌似可以直接被http访问操作。
u.Name = " tom " ;
DbEntry.Save(u);
1对多的查询操作:


public abstract class Person : DbObjectModel < Person >
{
[Length( 50 )]
public abstract string Name { get ; set ; }
[HasOne(OrderBy = " Id DESC " )]
public abstract PersonalComputer PC { get ; set ; }
public Person() { }
public Person( string Name) { this .Name = Name; }
}


public abstract class Book : DbObjectModel < Book >
{
[Length( 50 )]
public abstract string Name { get ; set ; }
[BelongsTo, DbColumn( " Category_Id " )]
public abstract Category Category { get ; set ; }
public Book() { }
public Book( string Name) { this .Name = Name; }
}
使用自定义的HasMany表示多对多


Console.WriteLine( " >>Before: " );
ShowHasMany(c);
Console.WriteLine( " >>After: " );
c.Name = " Sport " ;
c.Books[ 0 ].Name = " Kungfu " ;
c.Books[ 1 ].Name = " Dodge the bullets " ;
c.Save();
a.Readers.Add(Reader.New( " Kingkong " ));
a.Readers.Add(Reader.New( " Spiderman " ));
a.Save();
http://www.docin.com/p-37858241.html
ibatis需要自己写sql对orm进行映射,简单的说,就是一垃圾。
http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#tutorial-firstapp-firstclass
Hibernate
建立一个Event的类,


session.beginTransaction();
Event theEvent = new Event();
theEvent.setTitle(title);
theEvent.setDate(theDate);
session.save(theEvent);
session.getTransaction().commit();
一对多操作


session.beginTransaction();
Person aPerson = (Person) session.load(Person. class , personId);
Event anEvent = (Event) session.load(Event. class , eventId);
aPerson.getEvents().add(anEvent);
session.getTransaction().commit();
http://www.cnblogs.com/jiangyuxuan/archive/2007/08/11/852187.html
[ORMapping(TableName = " t_system_user " )] // 映射的实际数据表名称
public class UserEntity : BaseEntity // 必须继承实体基类
小结一下
看现在的orm很累,都没什么意思。来来去去那些。不是xml就是元数据。现在我的问题就是关系中的操作。
如果对对象的简单属性操作,没有任何问题。
x.aaa = xxx;
Session.save(x);
如果是简单操作+1对多操作,那么这两个对象,如何保证先后?如何实现save?
1对多,person --> car,本质上,就是person有个car的主键。因此,在操作上,用户要先save(car).再save(person)
如果是多对多操作?
本质上,就是增加了连接表,是个独立与这个2个对象的表。例如
person ---> cars ---> car
首先,这个连接关系,一定有方向,例如person->car。然后才是多对多关系。那么这个连接表就属于person管理了。过程就是:
car = new car();
person = new person();
person.addcar(car);
session.save(car);
session.save(person);