Можно сделать с FluentNhibernate. Вот примеры классов:
public class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual UserDetails Details { get; set; }
}
public class UserDetails
{
public virtual int Id { get; set; }
public virtual User User { get; set; }
public virtual string Address { get; set; }
}
И маппинги для них:
public class UserMap : ClassMap<User>
{
public UserMap()
{
Id(x => x.Id).GeneratedBy.Native("SEQ_USER");
Map(x => x.Name);
HasOne(x => x.Details)
.Cascade.All()
.ForeignKey("UserDetails");
}
}
public class UserDetailsMap : ClassMap<UserDetails>
{
public UserDetailsMap()
{
Id(x => x.Id).GeneratedBy.Foreign("User");
Map(x => x.Address);
HasOne(x => x.User).Constrained();
}
}