Asp.net Mvc: создание образцовых классов с LINQ к SQL

Я использую var в следующих ситуациях:

  1. , Когда я имею к (результат является анонимным)
  2. , Когда тип находится на той же строке как код, например,

    var emp = новый Сотрудник ();

Его очевидное мы хотим Сотрудника (потому что мы создаем новый объект Сотрудника), поэтому как

Employee emp = new Employee() any more obvious?

, я НЕ использую var, когда тип не может быть выведен, например,

var emp = GetEmployee();

, поскольку тип возврата не сразу очевиден (в Сотруднике, IEmployee, что-то, что не имеет никакого отношения к объекту Сотрудника вообще и т.д.?).

5
задан Charlino 2 August 2009 в 00:53
поделиться

2 ответа

Возможно, ваш репозиторий отключен из-за внедрения, а не из-за

public MoviesController (): this (new ** MovieRepository ** ())

Я рекомендую вам прочитать о IOC, это просто и очень интересно, вы можете использовать и контейнер ioc, например, Castle Windsor.

При этом ваш контроллер будет иметь только один конструктор, с интерфейсом, и ему не потребуется

С вашими объектами вы можете сделать то же самое, что и с контроллерами, создать интерфейс для каждого объекта и также использовать шаблон ioc, при этом вам нужно будет только изменить файл конфигурации для вашего контейнера ioc.

Если вы этого не сделаете, ваше право, вам нужно будет изменить все, что вы сказали.

Надеюсь, это поможет! извините за мой английский!

1
ответ дан 14 December 2019 в 08:56
поделиться

Итак, после нескольких дней чтения и большого количества поисковых запросов я заставил его работать. Сначала я попытался выяснить, что на самом деле означает IoC (Inversion of Control).

Одним из первых сайтов, которые я нашел, был сайт со скринкастом о Unity. Это структура DI / IoC для .Net.

Глядя на это сейчас, это действительно очень хороший скринкаст и пример того, как легко использовать Unity и IoC / DI. В то время я не понимал этого полностью, поэтому я продолжал и продолжал гуглить.

Один веб-сайт, на который я постоянно заходил, был сайт Мартина Фаулера.

Для меня, новичка в программировании, этот веб-сайт немного отвлечен. Также это может показаться странным, но шрифт, высота строки и типографика на этом веб-сайте были действительно ужасными, что усложняло чтение.

Следующий веб-сайт, который я прочитал, был о Виндзорском замке, поскольку Альфредо Фернандес сказал, что им легко пользоваться.

Документация была неплохой, но у меня возникли проблемы с преобразованием их базового примера "начало работы" в мое приложение Asp.net Mvc. Также в их начале отсутствовали части 2 и 3.

После этого я начал искать различные фреймворки, чтобы увидеть, смогу ли я найти действительно простой пример. Если бы я просто посмотрел первый скринкаст еще раз, я бы исправил его намного раньше, но почему-то потерял его из виду.

У меня было много проблем с файлами конфигурации xml, и я не мог кажется, заставить их работать. Я пробовал Windsor, Structure Map и Spring.net, но всегда останавливался с xml-файлами.

Поэтому я решил перейти на сайт Asp.net Mvc, потому что именно там я начал изучать Asp.net Mvc. Я нашел первые скринкасты и презентации MIX09 очень четкими, и я понял большую часть того, о чем люди говорили. Я застрял на втором скринкасте Роба Конери при создании приложения Storefront. Поскольку теперь я знал немного больше о репозитории и IOC / DI, я подумал, что было бы неплохо снова начать смотреть скринкасты Роба Конери. В одном из скринкастов он говорит о загрузке всех образцов в codeplex.

Я пошел в codeplex и обнаружил, что вы можете просматривать исходные файлы, не загружая их. Я попытался выяснить, как Роб Конери обрабатывает IOC / DI в своих репозиториях. Поэтому я был рад видеть, что он использовал карту структуры, но вместо использования файла конфигурации xml он использовал класс загрузчика, который регистрирует все интерфейсы для их конкретного класса.

Попробовав это с моим веб-приложением, я наконец смог заставить Структурную карту работать в моем приложении (Ура).

Он также показал мне, как исправить зависимость моего класса Product от Linq до Sql. Он создает дополнительный объект, который затем вызывается командой «выбрать новый продукт {}» в запросах Linq.

Вау, этот ответ немного длиннее, чем я планировал, но я надеюсь, что это поможет другим людям вроде меня, которые очень новички в кодирование и Asp.net Mvc.

6
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: