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);