Ответ 1
У вас есть это, q1.Union(q2)
. Союз находится в пространстве имен System.Linq с Queryable.
Если я получаю два результата IQueryable из разных запросов Linq, и я хочу объединить их вместе и вернуть их в качестве результата, как к этому? Например, если:
var q1 = (IQueryable<Person>).....;
var q2 = (IQueryable<Person>).....;
как объединить q1 и q2 вместе и получить результат как
var q = (IQueryable<Person>)q1.Union(q2);
У вас есть это, q1.Union(q2)
. Союз находится в пространстве имен System.Linq с Queryable.
Вы можете попробовать метод Concat
Что-то вроде этого
int[] i1 = new int[] { 1, 2, 3 };
int[] i2 = new int[] { 3, 4 };
//returns 5 values
var i3 = i1.AsQueryable().Concat(i2.AsQueryable());
//returns 4 values
var i4 = i1.AsQueryable().Union(i2.AsQueryable());
Союз даст вам только значения DISTINCT, Concat предоставит вам UNION ALL.
(q1.Union(q2)).AsQuerable()
С NHibernate Union невозможно.
Вам нужно обработать на стороне клиента вместо DB, обрабатывающей объединение. Я конвертирую IQueryable в IENumerable с помощью AsEnumerable, а затем использую расширение Concat.
var allItems = q1.AsEnumerable(). Concat (q2)
С уважением, Sebastian