У меня здесь немного головоломка, и я надеюсь, что некоторые из вас, Гуру, помогут заполнить пробелы ,ASP.NET MVC (MVC2) Лучшие практики при вставке/обновлении данных с использованием слоев Linq to SQL и репозитория
Ситуация, с которой я сейчас сталкиваюсь, касается моей таблицы «Пользователи» и моей таблицы «OpenID». Мое приложение позволяет пользователю иметь несколько OpenID, поэтому я отслеживаю их в отдельной таблице.
Пользователи
ID
Имя пользователяOpenID
ID
Идентификатор_пользователя
Claimedidentifier
У меня есть хранилище CRUD для каждой таблицы , и у меня также есть Служба, которая взаимодействует с Репозиторием (одна услуга за репо).
Вопрос, который у меня есть, касается ввода нового пользователя (так как обновление будет следовать одному и тому же принципу). Вот варианты, которые у меня есть в голове.
- Иметь UserService ввода нового пользователя, получить идентификатор пользователя, а затем вставить новый OpenID с помощью UserID
- Был ли UserService отправить новый пользователь вместе с ClaimedIdentifier к UserRepository, и имеет вставку хранилища как User, так и OpenID (это очень не подходит для методологии CRUD)
- Создайте представление как таблицы пользователя, так и таблицы OpenID, создайте UsersOpenIDRepository и UsersOpenIDService, а затем вставьте в представление.
Любые другие мысли или предложения, помимо того, что я могу придумать, будут очень признательны.
Обратите внимание: я не использую NHibernate, поэтому могу смоделировать свой домен, но я считаю нужным. Я придерживаюсь Linq to SQL в этом проекте,
так что это не конец света, чтобы дважды попасть в базу данных на этом вставке? Я беспокоюсь о том, что у меня слишком много бэков. Кроме того, я не полностью продаюсь при переходе на EF, или NHibernate, или что-нибудь в этом направлении ...Это всего лишь еще одна кривая обучения. –
Это, конечно же, не конец света. Если я не ошибаюсь, Linq2SQL переводит этот вид вставки в две вставки и один выбирает, чтобы получить идентификатор из базы данных в любом случае. Что касается EF: я тоже не продаюсь. И это после того, как потратили 1 неделю на оценку EF. Linq2SQL гораздо проще в использовании. Если бы это была не умирающая технология. –