Anc*_*oli 5 c# nhibernate wpf session mvvm
我使用WPF与NHibernate目前正在使用与多发线,是造成如此多的错误同一个会话此链接.所以现在我必须在完成后立即开始和关闭会话.但问题将是懒惰的数据.我很困惑如何用MVVM获取它们如下: -
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
{
get { return Name; }
set
{
Name = value;
OnPropertyChanged("NAME");
}
}
public virtual string TerminalName
{
get { return session.terminal.terminalName; }
set
{
session.terminal.terminalName= value;
OnPropertyChanged("TerminalName");
}
}
public virtual string CateName
{
get { return session.cate.catename; }
set
{
session.cate.catename= value;
OnPropertyChanged("CateName");
}
}
public virtual string UserName
{
get { 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;}
}
Run Code Online (Sandbox Code Playgroud)
我将从列表中的数据库中获取数据并将其提供给DataGrid,itemsource如下所示
<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>
Run Code Online (Sandbox Code Playgroud)
所以当我关闭连接并DataGrid显示那个时候我因为会话关闭而变得懒惰.我不知道该怎么办.如果会话关闭,任何人都可以建议使用MVVM获取延迟数据.我不想使用急切加载作为解决方案.
请告诉我您需要更多信息.
谢谢Anchit
大多数情况下,您有三个选项,它们与您使用的 ORM 无关,因为 ORM 的行为非常相似:
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |