0
我想實現一個人與汽車之間的一對多關係,並對人員和汽車都進行CRUD操作。簡要CRUD和關係:通過NHibernate的一對多通過代碼或xml進行的Loquacious映射
更新
- 一個
person
對通過人對象即人,車很多cars
- CRUD操作。
- 刪除一個人將刪除所有他/她的汽車
- 可以通過人員對象或汽車對象在某人的汽車上執行CRUD操作。
是否有可能通過ORM,特別是NHibernate?
類象下面這樣:
public class PersonSet
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ISet<CarSet> Cars { get; set; }
}
public class CarSet
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual PersonSet Person { get; set; }
}
映射如下所示:
public class PersonSetMap : ClassMapping<PersonSet>
{
public PersonSetMap()
{
Id(x => x.Id, m=>m.Generator(Generators.Identity));
Property(x=>x.Name);
Set(x => x.Cars, c =>
{
//c.Key(k =>
// {
// k.Column("PersonId");
// });
c.Cascade(Cascade.All);
c.Lazy(CollectionLazy.NoLazy);
// c.Inverse(true);
}
, r =>
{
r.OneToMany();
}
);
}
}
public class CarSetMap : ClassMapping<CarSet>
{
public CarSetMap()
{
Id(x => x.Id, m => m.Generator(Generators.Identity));
Property(x => x.Name);
ManyToOne(x => x.Person, m =>
{
m.Column("PersonId");
m.Cascade(Cascade.None);
m.NotNullable(true);
});
}
}
我的問題是,如果我更新一輛車,並嘗試將其救一個人對象,它不不會改變。
更新
我想找出如果可能的話,並在我上面的映射是錯誤。無論是xml版本還是Loquacious的任何想法也將不勝感激。
表Car
上應該有PersonId
外鍵。