Как обрабатывать отношения с пользователями из других таблиц в ASP.Net MVC?

На уровне таблицы я устанавливаю aspnet_User.UserID в качестве внешнего ключа UserID в других таблицах (например, Posts.UserID, поэтому у каждого сообщения есть владелец). Это путь?

Когда я создаю модель LINQ to SQL, должен ли я включать таблицу aspnet_User?

Когда я создаю сообщение (запись в таблице сообщений, объект сообщения), как мне установить отношение к вошедшему в систему пользователю (объект пользователя в контроллере)?


person pupeno    schedule 29.05.2009    source источник


Ответы (2)


Я не включаю таблицу aspnet_User в свой linq-to-sql, поскольку она мне действительно не нужна. Я использую встроенный способ доступа к данным о членстве.

Но для ваших сообщений таблицы вам может быть проще включить его, чтобы вы могли легко отображать имя пользователя, выполнив myPost.User.Name

редактировать:

    MembershipUser user = Membership.GetUser();
    Guid userGuid = (Guid)user.ProviderUserKey;

    Post post = new Post
            {
                 UserId =userGuid,
                 Message = message                                      
            };
person Thomas Stock    schedule 29.05.2009

В вашей схеме базы данных вы обязательно должны иметь UserID в таблице Post как внешний ключ для aspnet_user table в поле UserID. Таким образом, вы убедитесь, что ваши данные чисты. Я бы даже добавил к этим отношениям каскадное удаление и обновление.

Затем обратитесь к моим инструкциям в предыдущий вопрос, который вы задали, о том, как получить данные пользователя.

(Томас Сток кратко резюмировал это выше :))

person Pure.Krome    schedule 29.05.2009
comment
Итак, объект User, который предоставляет Asp.NET MVC, бесполезен? - person pupeno; 29.05.2009