如何使用nhibernate从数据库中进行多次选择

本文关键字:选择 何使用 nhibernate 数据库 | 更新日期: 2023-09-27 18:12:54

我需要显示多次选择的结果,不知道如何处理,问题如下:

我有一个树,它是多重选择,选择第一次,这向我显示了正确的信息,但是当我选择另一个节点时,应该显示第一次和第二次选择的信息,但只显示第二次。

我的问题是,我如何存储以前的选择并将其与新选择链接…?我正在使用NHibernate, c#和MVC模型。

谢谢你的帮助。

真诚

如何使用nhibernate从数据库中进行多次选择

可以查询多个选择

IEnumerable<Entity> results = Enumerable.Empty<Entity>();
foreach (var node in selectedNodes)
{
    results = results.Concat(Session.Query<Entity>().Where(...).Future<Entity>());
}
Show(results);

或缓存选择

的结果
Dictionary<node, IEnumerable<Entity>> _nodeResults; // somewhere

foreach (var node in selectedNodes)
{
    if (!_nodeResults.ContainsKey(node))
        _nodeResults.Add(node, Session.Query<Entity>().Where(...).Future<Entity>());
    results = results.Concat(_nodeResults[node]);
}

如果需要不同的结果,使用Intersect代替Concat或使用Show(results.Distinct());