我一直推遲這個問題一段時間,但現在它一直困擾着我。我有2類(這些類automapped - 我離開了public
和virtual
贅述。):如何正確綁定一個winforms控件的表?
class Cashier
{
int Id {get; set;}
string name{get; set;}
IList<Site> Sites {get; set;}
}
class Site
{
int Id{get; set;}
string name {get; set;}
Cashier Cashier {get; set;}
}
我加載收銀員這個:
sealed class Repository<T> : IRepository<T> where T :class
{
public IList<T> Items { get; private set; }
public void Load()
{
Items.Clear();
var session = SessionHelper.GetSession();
session.Clear();
using (var tx = session.BeginTransaction())
{
var list = session.Query<T>().ToList();
foreach (var obj in list)
{
Items.Add((T)session.Merge(obj));
}
session.Clear();
tx.Commit();
}
}
//more
}
,並在WinForm的我把它綁定到一個BindingSource的是這樣的:
cashierBindingSource.DataSource = Cashiers;
我設置的BindingSource作爲組合框的數據源,當我運行應用程序,並單擊除了這個組合框離子被拋出我:
初始化[HRProject.Model.Cashier#1] -failed懶洋洋地初始化角色的集合:HRProject.Model.Cashier.Sites,沒有會話或會話關閉
我發現,提供一個映射覆蓋修復此問題
mapping.HasMany(x => x.Sites).Not.LazyLoad().Cascade.All();
不過,我有很多這樣的班,我去有來完成這件事更清潔的方式感覺。有任何想法嗎?
什麼是DisplayMember和ValueMember? – clearpath 2012-03-02 09:59:33