У меня есть новое приложение MVC 3, которое показывает некоторые проблемы при изменении данных вручную в базе данных.
Инструмент все еще находится в разработке, и время от времени я хочу изменить идентификатор команды моего пользователя. Когда я это сделаю, мне придется убить Сервер веб-разработки и запустить его снова, иначе запросы не выберут новый teamId.
То же самое, когда я публикую инструмент в IIS, если я когда-нибудь что-то изменю в базе данных, мне нужно либо снова скопировать папку bin, либо остановить приложение и повторно запустить его.
Когда я изменяю данные из самого приложения, у меня нет проблем.
Вот так выглядит мой Ninject:
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel kernel = new StandardKernel(new TrackerServices());
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
return null;
return (IController)kernel.Get(controllerType);
}
private class TrackerServices : NinjectModule
{
public override void Load()
{
var context = new TrackerEntities();
Bind<IUserRepository>().To<UserRepository>().WithConstructorArgument("context", context);
}
}
}
Мой интерфейс:
public interface IUserRepository : IRepository<User>
{
User GetByName(string name);
}
моя реализация:
public User GetByName(string login)
{
var userLogin = _misc.GetUsername(login);
return _context.Users.Where(x => x.Login == userLogin).Single();
}
И мой указатель действий
public ActionResult Index()
{
var teamid = (int)_users.GetByName("myName").TeamId;
Этого раньше никогда не было, но этот инструмент - первый, который я использую с Ninject. Мне интересно, есть ли связь между моей проблемой и использованием репозитория?