0
有了單向映射和Cascade.All集合,是否可以通過設置一個有效的FK來保存一個孩子,然後做一個Save或SaveOrUpdate?NHibernate;堅持孩子只有單向映射
如果我創建一個新的秩序,制定有效的Account_ ID,做一個SaveOrUpdate,帳戶 _id設置爲數據庫中的NULL,而實體仍然有ACCOUNT_ID先前設定。
爲什麼?我可以修改SaveOrUpdate方法來實現這個功能嗎?
public class Account
{
public int Id { get; set; }
public string Name { get; set; }
public IList<Order> Orders { get; set; }
//...
}
public class Order
{
public int Id { get; set; }
public int Account__id { get; set; }
public decimal Price { get; set; }
//...
}
映射:
public class AccountMap : ClassMap<Account>
{
public AccountMap()
: base()
{
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Name);
HasMany(x => x.Orders).KeyColumn("Account__id").Cascade.All();
}
}
庫:
public void SaveOrUpdate(T instance)
{
using (ISession session = FnhManager.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
lock (instance)
{
session.SaveOrUpdate(instance);
transaction.Commit();
}
}
}
}
Ehm ...你是對的,謝謝! – bretddog 2012-07-31 11:26:36