我在使用NHibernate和RIA服務時,以下關聯會導致我遇到問題。阻止NHibernate嘗試刪除關聯集合
User hasMany UserRoleGrants via the property user.Roles
當我嘗試更新我的用戶Silverlight客戶端通過用戶實體服務層,但沒有填充的角色屬性(似乎是合理的,因爲它可能是一個大集合,爲什麼把它來回在網絡)。這導致NHibernate嘗試刪除此用戶的UserRoleGrants。
感覺就像我想做一個等效的session.Load,但只是爲user.Roles屬性而不是整個對象。
我該如何做到這一點?
編輯:這是我流利的映射
public UserMap()
{
Id(x => x.Id).GeneratedBy.HiLo("10000");
Map(x => x.UserName).Unique().Not.Nullable().Length(255).Default(string.Empty);
HasMany(x => x.RoleGrants).KeyColumn("User_id").Cascade.None().Access.CamelCaseField().LazyLoad();
}
感謝
它實際上是一個DTO,因爲服務只是將其序列化並將其反序列化爲生成的代理。 – BenCr 2011-04-07 13:56:13
@BenCR看起來你正在將它視爲一個正規的實體。一旦在服務器上,你應該從ne會話中讀取uSer,並通過DTO – 2011-04-07 14:01:17
進行更新。好吧,看起來我們可能以一種不被認爲是「最佳實踐」的方式使用NHibernate?你知道關於在服務上使用NHibernate的最佳實踐文章嗎? – BenCr 2011-04-07 14:04:01