人と車の間に1対多の関係を実装し、人と車の両方でCRUD操作を行いたいです。簡単な CRUD と関係:
アップデート
- A
person
にはたくさんあるcars
- person オブジェクトを介した人と車の両方に対する CRUD 操作。
- 人を削除すると、すべての車が削除されます
- person オブジェクトまたは car オブジェクトを介して、誰かの車に対して 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);
});
}
}
私が抱えている問題は、1 台の車を更新して人物オブジェクトに保存しようとしても、変更されないことです。
アップデート
それが可能かどうか、および上記のマッピングがどこで間違っているかを知りたいです。xml バージョンまたは Loquacious に関するアイデアもいただければ幸いです。
PersonId
tableに外部キーが必要Car
です。