Я использую членство в ASPNET с 50000 записями, и у нас есть еще одна таблица с именем "scm_Users", в которой есть ровно количество записей, они НЕ связаны ни одним ключом. У меня есть простой SQL:
select * from dbo.aspnet_Users a, dbo.scm_Users b
where a.UserName = b.UserName
Я могу получить 50000 записей менее чем за 1 секунду.
В LINQ, (используя Entity Framework), когда я пытаюсь сделать то же самое:
IEnumerable<MembershipUser> allMembershipUsers = Membership.GetAllUsers().Cast<MembershipUser>();
ObjectQuery<User> users = this.DataContext.UserSet;
var result = (from a in allMembershipUsers
from b in users
where a.UserName == b.UserName
select new
{
.....
}).AsEnumerable();
Когда я связал результат с Grid, он получил тайм-аут для 50000 записей. Когда я отлаживал его и размышлял над «представлением результатов», он тоже истекал. Конечно, если я использую Membership.FindUsersByName () и ограничу количество записей, он вернет результаты в любом случае.
И, если я связываю 50000 записей непосредственно в Grid без запроса членства, Grid также работает.
var result = (from b in users
select b).AsEnumerable();
Что я сделал не так?
нотабене