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

时间:2011-10-31 03:58:18

标签: c# asp.net-mvc nhibernate jstree dataview

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

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

我的问题是,我如何存储以前的选择并将其与新的选择相关联?我正在使用NHibernate,C#和MVC模型。

我感谢任何帮助。

此致

1 个答案:

答案 0 :(得分:0)

您可以查询多个选择

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());