Должен быть способ сравнить два набора результатов, оставаясь в LINQ. Вот мой существующий код, который использует HashSet сделать сравнение после двух отдельных запросов:LINQ: как получить пересечение двух наборов ints?
public static void AssertDealershipsShareTransactionGatewayCredentialIds(long DealershipLocationId1,
long DealershipLocationId2)
{
using (var sqlDatabase = new SqlDatabaseConnection())
{
var DealershipCredentials1 =
sqlDatabase.Tables.DealershipLocationTransactionGateway
.Where(x => x.DealershipLocationId == DealershipLocationId1)
.Select(x => x.TransactionGatewayCredentialId);
var DealershipCredentials2 =
sqlDatabase.Tables.DealershipLocationTransactionGateway
.Where(x => x.DealershipLocationId == DealershipLocationId2)
.Select(x => x.TransactionGatewayCredentialId);
var doSetsOfCredentialsMatch = new HashSet<int>(DealershipCredentials1).SetEquals(DealershipCredentials2);
Assert.IsTrue(doSetsOfCredentialsMatch,
"The sets of TransactionGatewayCredentialIds belonging to each Dealership did not match");
}
}
Идей? Благодарю.
Возможный дубликат запроса [Intersect LINQ query] (http://stackoverflow.com/questions/2381049/intersect-linq-query) –
Что случилось с вашим путем? Выглядит идеально для меня. В противном случае см. Http://stackoverflow.com/questions/33245613/whats-the-best-way-to-determine-whether-two-listt-objects-contain- the-same-se и http://stackoverflow.com/questions/3669970/compare-two-listt-objects-for-equal-ignoring-order –
Он делает два вызова базы данных, которые возвращают несколько записей, а не только логическое. –