У меня есть модель Docs с направляющим столбцом author_id, которая должна ссылаться на MemberhipUser.ASP.NET MVC: отношения между моделями и MembershipUsers
Я использую стандартный MemberhipProvider (я только изменил имя db), и, конечно, у меня нет модели для MembershipUsers.
Я могу легко определить некоторые методы в классах Docs, чтобы получить членство для Doc и всех Документов для MembershipUser, но некоторые вещи сложны (перечисление пользователей, отображение количества документов каждого пользователя); Кроме того, я чувствую, что использую MVC странным образом: мне кажется, что было бы легче, если бы у меня была модель MembershipUsers ...
Как я могу реализовать это соотношение? Должен ли я использовать модель для MembershipUsers?
благодаря
обновление: Я понимаю, что не ясно вообще.
Скажем, я хочу перечислить всех моих пользователей и их документы. Один из способов сделать это:
ViewModel model = new ViewModel()
{
Users = from MembershipUser user in Membership.GetAllUsers(page, pagesize, out totalusers)
select new UserWithDocs
{
User = user,
Docs = context.Docs.Where(c => c.author_id == (Guid) user.ProviderUserKey)
},
UsersCount = totalusers
};
Это работает, но генерирует один отдельный запрос для каждого пользователя.
Я мог бы получить массив запросов пользователей, а затем запросить для Документов where author_id IN list_of_guids
, но тогда я должен вручную связать каждый документ с его автором.
Что такое лучшее решение?
Вы пытаетесь загрузить все пользователи и все документы? Это звучит как много данных. Почему бы не разделить ваши взгляды на список пользователей, а затем развернуться в списке документов для выбранного пользователя? Как вы указали, если вы хотите сделать это в двух запросах, вам необходимо вручную связать документы с пользователями, используя цикл foreach. – Junto