@ eldar, я думаю, что оба подхода хороши. И, кстати, для меня EF-модели не следует рассматривать как модели (если вы не используете подход Code First) => они просто генерируются автоматически вспомогательными транспортными объектами базы данных, которые должны входить в репозиторий CRUD, а не в службу, потому что они часто загрязнены / связанных с используемой вами технологией доступа к данным (в данном случае EF).

м, у меня есть RegisterModel для регистрации пользователей и некоторые UserService, которые реализуют IUserService

public interface IUserService
{
   User CreateUser(User newUser);
}


[HttpPost]
public ActionResult Register(RegisterModel model)
{
            if (ModelState.IsValid)
            {

                // ... logic for newuser

                User user = _userService.CreateUser(newuser);

               _authenticationService.SetAuthenticatedUser(user);

                return RedirectToRoute("Homepage");
            }

            return View(model);
        }

Учитывая, что RegisterModel может быть очень сложным, где логика должна пойти для отображения RegisterModel на объект пользователя

Ответы на вопрос(1)

Ваш ответ на вопрос