c# - NHibernate Session in WPF MVVM -
i using wpf
nhibernate
using single session mutiple thread causing many error same this link. have start , close session done. problem be lazy data. confuse how fetch them mvvm below :-
class product { public virtual string name{get;set;} public virtual session session{get;set;} // lazy public virtual categories cate{get;set;} //lazy public virtual warehose warehouse{get;set;} //lazy public virtual string name { { return name; } set { name = value; onpropertychanged("name"); } } public virtual string terminalname { { return session.terminal.terminalname; } set { session.terminal.terminalname= value; onpropertychanged("terminalname"); } } public virtual string catename { { return session.cate.catename; } set { session.cate.catename= value; onpropertychanged("catename"); } } public virtual string username { { return session.user.username; } set { session.user.username= value; onpropertychanged("username"); } } } class categories { public virtual string catename{set;get;} } class warehose { public virtual string warename{set;get;} } class session{ public virtual people user{get;set;} //lazy public virtual terminal terminal{get;set;} //lazy //... other properties } class people{ public virtual string username{set;get;} } class terminal{ public virtual string terminalname{set;get;} }
i fetch data database in list , giving datagrid itemsource
below
<datagrid name="saledatagrid" <datagrid.columns > <datagridtextcolumn binding="{binding name}" fontsize="12" canuserresize="false" width="70" header="code"/> <datagridtextcolumn binding="{binding terminalname}" fontsize="12" header="desciption" width="120" canuserresize="false"/> <datagridtextcolumn binding="{binding catename}" fontsize="12" header="price" width="50" canuserresize="false"/> <datagridtextcolumn binding="{binding username}" fontsize="12" canuserresize="false" width="45" header="qty"/> </datagrid.columns> </datagrid>
so when close connection , when datagrid
display time getting lazy exception because session closed. don`t know should do. can 1 please recommend lazy data witth mvvm if session closed. don't want use eager loading solution this.
please let me know need more information.
thanks anchit
for part, have 3 options, , independent orm use, because orms behave similar:
- let session/context object live long, view model lives;
- build model ("m" in mvvm) in manner, allows fetch data lazily, when need them (with creation of new session/context object every time). turns off orm's lazy loading, since model managing lazy loading itself;
- throw away lazy loading , load need view model.
Comments
Post a Comment