Чем Ваши события были с Платформой Объекта?

Вы должны сохранить новое значение в переменной.

word = "glue"
word.replace("u", "_")
print(word) # glue

Вы можете исправить это, просто изменив на variable = ...

word = "glue"
word = word.replace("u", "_")
print(word) # gl_e

Итак:

hangman_word = hangman_word.replace("_", user_guess)

В дальнейшем обратите внимание на то, какие функции и методы возвращают новые значения и которые изменяют значения «на месте». Это полезная вещь, о которой следует помнить при работе с Python!

Например, append обращение к списку «на месте».

word = list(word) # ['g', 'l', '_', 'e']
word.append("!")
print(word) # ['g', 'l', '_', 'e', '!']
9
задан Brian MacKay 30 November 2008 в 15:30
поделиться

3 ответа

Ну, я только что закончил реализовывать полную систему в EF, это был мой первый реальный опыт с EF в продуктивной среде. Приложение работает теперь в течение приблизительно 45 дней с 100's пользователей, поражающих его ежедневно без проблем.

Я думаю, что самая большая вещь состоит в том, что необходимо изменить взгляды. Если Вы думаете как реляционная база данных ORM затем, у Вас уже есть неправильное мышление. Необходимо думать с точки зрения частичных методов, объектов и расширений. После того как Вы получаете то основное мышление вниз, вещи начинают течь (и Вы переписываете много кода от того, когда Вы сначала запустили).

Получение Справки грубо

Другая расстраивающая часть EF - то, что везде Вы идете для справки, полно L2S biggots, кто думает, что уже знают все, что необходимо сделать и продолжать пытаться сказать Вам отбрасывать его и просто использовать L2S... Если я ПОПРОСИЛ бы то, как сделать это в L2S затем, возможно, их мнение будет допустимо...

EF хорошо работает

Основная способность генерировать объекты, которые можно затем расширить через частичные методы, работает хорошо. Я на самом деле был довольно расстроен на ранних стадиях, потому что я продолжал пытаться получить вещи путем, я буду в SQLCommand. После того как Вы понимаете, что можно думать с точки зрения того, в чем нуждается бизнес-логика, а не как SQL работает, можно стать намного более сделанными.

Например - я продолжал пытаться сделать соединения для получения списка вещей, которые были связаны определенным FK для различных задач. После того как я наконец выяснил, что могу вручить все, где claus к EF и позволяют фигуре, как вернуть данные мне быстро, код был на самом деле намного быстрее.

Включает вонь

Включать синтаксис чувствует себя подобно взлому мне все же. Необходимость использовать.Include ("TableName. DetailTable"), УЖАСНО. Возможно, я просто испорчен intellisense, но я ненавижу тот синтаксис.

По требованию загрузка

Основные загрузки детали также немного ужасны. Если Вы не хотите включать их, можно всегда брать их ссылку и видеть, называет ли она.IsLoaded затем.Load. Почему? Разве объект не может сделать этого для меня? Я закончил тем, что реализовал метод расширения на своих объектах, что, если я пытаюсь загрузить класс детали, который не загружается, он загружает его по требованию. Кажется, что это должно было быть встроено мне.

Примечание: Загрузка детали фильтрованного recordset, упомянутого в вышеупомянутом сообщении, не является сложной, но не является очевидной также. Можно отфильтровать Лямбда-выражения использования.

Вы когда-либо хотите переместить проект?

Вот большая причина: Не зависимость от поставщика. Если Вы КОГДА-НИБУДЬ хотите взять тот код к другой базе данных, Вы не МОЖЕТЕ сделать этого с Linq2SQL. Нет никакой модели поставщика. У Вас может быть шанс переместить систему EF к другому поставщику. В моем случае тот же проект работает на SQL Server и VistaDB EF (Альфа) без изменений кода. Таким образом, я могу скопировать с помощью xcopy, развертывают его или соединяются с сервером, поскольку я выбираю во времени выполнения.

6
ответ дан 4 December 2019 в 22:31
поделиться

После испытания EF для нового проекта (ASP.NET / WCF) я нашел:

Запросы, чтобы быть очень очень легким реализовать через LINQ. Большую часть времени сгенерированный T-SQL был на деньгах.

Поддержке приложений N-tier абсолютно недоставало.

Управление экземплярами к контексту объекта было одинаково болезненным в слое n-типа, приложениях asp.net.

Разработчик EF испытывал недостаток в некоторых очевидных функциях, всегда погружался в XML.

Обновления подвергаются или дорогостоящим распространениям в прямом и обратном направлениях базы данных или имеют безумно неясные методы, чтобы стараться избегать их.

Хит производительности был значительно примечателен от POCO & SP базирующееся n/tier приложение. Это ожидалось, но не к расширению мы заметили. Даже после компиляции запросов.

Время, которое мы сэкономили в разработке из-за простоты запросов, был скоро потерян, пытаясь сделать то, что было ранее простыми задачами.

Поскольку Мозг, затронутый, относясь к имени типа объекта или имени таблицы строкой, был абсолютно раздражающим и чувствовал себя очень грязным, писал обертки возвращать их из единственной точки.

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

Но для нас, мы не пускаем глаз для V2 и надо надеяться некоторых улучшений.

1
ответ дан 4 December 2019 в 22:31
поделиться

РЕДАКТИРОВАНИЕ (да, 3 года спустя)... Я больше не ненавижу EF... Платформа объекта 4.1 и является большой - она (наконец) решает все проблемы/сбои, которые она имела в прошлом. Отметьте, не "4.0", но "4.1" наконец удалил ужасное использование 'волшебных строк', и т.д. Это имеет Contains и все остальное плюс больше.

Ниже мой старый комментарий с 2008

Я лично ненавижу EF. Я ЛЮБЛЮ LINQ-2-SQL. Вот мои конкретные предупреждения о EF:

1) EF не поддерживает, "Содержит" функцию. Так, если у Вас есть таблица 10 000 'учетных записей', и Вы хотели возвратить некоторые учетные записи, что пользователь предоставил список идентификатора... необходимо будет загрузить все 10,000 и сделать для цикла.

2) EF не поддерживает ленивую загрузку: http://www.singingeels.com/Articles/Entity_Framework_and_Lazy_Loading.aspx

3) Если у Вас есть простая таблица "Type", пример AccountType..., и Вы хотели выбрать все учетные записи из таблицы Accounts где AccountTypeID == 9, нет очевидного способа выполнения его в EF... EF скрыл бы то поле и заставил бы Вас предоставить экземпляр класса AccountType.

Все эти проблемы решены в L2S.

Править: О, Вы спросили, "что является Вашими событиями..." не, примерно выходит. В моем новом задании у них есть 205 баз данных таблицы, 600 + хранимые процедуры, и т.д. Я хотел устранить разрыв в новый мир программирования..., таким образом, я преобразовал DAL в 1-1, "перетаскивают все таблицы в" версии с помощью EF. Вот то, на что это было похоже: Гигант EDM

Только после 1 недели я должен был сорвать его и заменить его L2S из-за проблем, которые я упомянул выше, и еще много.

1
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

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