- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们的系统上有 Users 和 Persons。每个用户有很多人。但是当用户登录时,我们需要查找他的主要Person记录,填写他的姓名、地址、电话等。
public class Person
{
/// <summary>Every Person belongs to a user.</summary>
public virtual User User { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Address { get; set; }
public virtual string Phone { get; set; }
// More methods & Properties
}
public class User : Entity
{
public virtual string Username { get; set; }
public virtual string Password { get; set; }
/// <summary>Every User has a primary person record.</summary>
public virtual Person PrimaryPerson { get; set; }
// More methods & Properties
}
类映射如何在没有循环引用的情况下查找它?
最佳答案
试试这个:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Table("Persons");
Id(x =>x.Id, "PersonId").GeneratedBy.Identity();
References(x => x.User).Column("UserId").Cascade.All();
Map(x => x.FirstName, "FirstName");
Map(x => x.LastName, "LastName");
Map(x => x.Address, "Address");
Map(x => x.Phone, "Phone");
// More property maps
}
}
public class UserMap : ClassMap<User>
{
public UserMap()
{
Id(x => x.Id, "UserId").GeneratedBy.Identity();
Map(x => x.Username, "Username");
Map(x => x.Password, "Password");
References<Person>(x => x.PrimaryPerson).ForeignKey("PrimaryPersonId").Cascade.All();
}
}
这是假设您的 ID 是自动编号的,并且当您更新用户时,您还希望您的 PrimaryPerson 与它一起更新。如果不是这种情况,请将 Cascade.All() 更改为 Cascade.None()。请确保当您这样做时,您手动更新了 PrimaryPerson,否则您将在 SubmitChanges() 上获得“对象引用未保存的 transient 实例”。
关于c# - 流利的 NHibernate : How to have a one-to-many reference in both directions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495823/
我正在尝试将fluentd与elasticsearch连接起来,并且在启动td-agent服务时遇到此错误。 td-agent.log: 无法与Elasticsearch通信,重置连接并重试。连接被拒
所以我有一个案例,布局已经变得更加复杂。有一些常见的东西,比如 @section styleIncludes{ ... } ,然后是其他部分,这些部分定义了每个页面可以选择(但几乎总是)指定的各种内容
我刚刚看到一个巨大的 Java 正则表达式,它让我对一般正则表达式的可维护性有所思考。我相信大多数人——除了一些糟糕的 perl 贩子——都会同意正则表达式很难维护。 我在考虑如何解决这种情况。到目前
我有一个 12 秒长的 audio.mp3 文件video.mp4 的长度为 60 秒。 我需要在视频的第 40 秒插入audio.mp3。 如何使用 Node-Fluent-ffmpeg 做到这一点
我正在使用 NHibernate + Fluent 来处理我的应用程序中的数据库。到目前为止,我一直在使用 SessionSource 来创建我的 ISession 对象。我现在对来自 NHibern
我在 Java 控制台应用程序中使用 Apache HttpClient 4.5(具有流畅的界面)。我注意到,它的默认超时值似乎是无限的,但我必须为我发送的请求使用非无限的超时值。我想对所有请求使用相
这是我的路线: router.get("answers","delete", Int.parameter) { req -> Future in let answerID = try
我有随机“ session 已关闭!” Autofac 和 Fluent nHibernate 的以下配置错误: 全局.asax.cs: builder.Register(x => new NHibe
我是一名优秀的程序员,十分优秀!