3
私はプロジェクトをアップグレードし、コードマッパーでビルドを使用しようとしています。OneToOneのコードによるマッピングnhibernate 3.2
私は2つの実体があります:データベース構造はこのようなものです
public class Person {
public virtual int Id { get; set; }
public virtual User User { get; set; }
}
public class User {
public virtual int Id { get; set; }
public virtual User Person { get; set; }
}
:「を
public class UserMap : ClassMap<User> {
public UserMap() {
Id(x => x.Id).GeneratedBy.Identity();
HasOne(x => x.Person).PropertyRef("User").Not.LazyLoad();
}
}
public class PersonMap : ClassMap<Person> {
public PersonMap() {
Id(x => x.Id).GeneratedBy.Identity();
References(x => x.User).Column("UserId").Not.Nullable().Not.LazyLoad();
}
}
ことができますが、次のとおりです。FluentNHibernateで
table: users, fields: id
table: people, fields: id, userId
私はこのようにそれをマップすることができコードマッパーでNH 3.2ビルドで動作するようにしてください。 これは私がこれまで行ってきたことです。
OneToOne(x=>x.Person, m => {
m.PropertyReference(typeof(Person).GetProperty("User"));
});
OneToOne(x=>x.User, m => {});
リレーションはUser.IdとPerson.Idにマッピングされますが、personidとuseridは異なる場合があります。 ユーザーに人がいない可能性もあります。
from Users user0_ left outer join People person1_ on user0_.Id=person1_.Id
私はPerson - > UserがUserId列にマッピングされているが、その方法を指定する必要があると思います。
thanx!私はonetoone関係で考えていただけで、manytooneではなく、素晴らしい作品です。そして、怠惰な負荷が中程度の信頼に必要でした、私はそれをnh 3.2で使用しないようにしようと考えています(恐らくnoproxy) – Bas