Как я обновляю Linq к SQL dbml файл?

Мое любимое учебное руководство по Монаде:

http://www.haskell.org/haskellwiki/All_About_Monads

(из 170 000 хитов на Google ищут "учебное руководство по монаде"!)

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

у Haskell уже есть оператор, перегружающийся [1]: это использует классы типа очень способ, которым можно было бы использовать интерфейсы в Java или C#, но Haskell просто, оказывается, также позволяет неалфавитно-цифровые маркеры как + & & и> как инфиксные идентификаторы. Это - только оператор, перегружающийся в Вашем способе посмотреть на него, если Вы означаете "перегружать точку с запятой" [2]. Это походит на черную магию и напрашивающийся на неприятности для "перегрузки точки с запятой" (изображение инициативные хакеры Perl, получающие ветер этой идеи), но дело в том, что без монад нет никакой точки с запятой, так как чисто функциональный код не требует или позволяет явное упорядочивание.

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

[1] Это - отдельный вопрос от монад, но монады используют функцию перегрузки оператора Haskell.

[2] Это - также упрощение, так как оператор для объединения в цепочку одноместных действий>> = (объявленный, "связывают"), но существует синтаксический сахар ("делают"), который позволяет Вам использовать фигурные скобки и точки с запятой и/или добавление отступа и новые строки.

195
задан Michael Myers 18 August 2016 в 05:55
поделиться

4 ответа

There are three ways to keep the model in sync.

  1. Delete the modified tables from the designer, and drag them back onto the designer surface from the Database Explorer. I have found that, for this to work reliably, you have to:

    a. Refresh the database schema in the Database Explorer (right-click, refresh)
    b. Save the designer after deleting the tables
    c. Сохраните снова после перетаскивания таблиц обратно.

    Обратите внимание , однако, что если вы изменили какие-либо свойства (например, отключили дочернее свойство ассоциации), это, очевидно, потеряет эти изменения - вам придется сделать их снова.

  2. Используйте SQLMetal для восстановления схемы из вашей базы данных. Я видел несколько сообщений в блогах, в которых показано, как написать этот сценарий.

  3. Вносите изменения прямо в панели свойств DBML. Это работает для простых изменений, таких как разрешение пустых значений в поле.

Конструктор DBML не устанавливается по умолчанию в Visual Studio 2015, 2017 или 2019. Вам придется закрыть VS, запустить установщик VS и изменить установку. Вам необходимо установить LINQ to SQL tools . Для VS 2017/2019 вы можете найти его в разделе Отдельные компоненты>

250
ответ дан 23 November 2019 в 05:22
поделиться

Вы также можете проверить набор шаблонов генерации кода PLINQO , основанный на CodeSmith, который позволяет вам делать много полезных вещей для и с Linq-to- SQL:

  • генерировать один файл для каждого класса (вместо одного огромного файла)
  • обновлять вашу модель по мере необходимости
  • многие другие функции

Посетите сайт PLINQO по адресу http: // www .plinqo.com и посмотрите вступительные видеоролики.

Второй известный мне инструмент - это инструменты Huagati DBML / EDMX , которые позволяют обновлять DBML (Linq-to-SQL ) и файлы сопоставления EDMX (Entity Framework) и многое другое (например, соглашения об именах и т. д.).

Marc

5
ответ дан 23 November 2019 в 05:22
поделиться

Есть нюанс при обновлении таблиц и последующем обновлении DBML ... Связи по внешним ключам не всегда переносятся немедленно, если в существующие таблицы вносятся изменения. Чтобы решить эту проблему, необходимо выполнить сборку проекта, а затем снова добавить таблицы. Я сообщил об этом в MS, и это исправлено для VS2010.

Дисплей DBML не отображает новые ограничения внешнего ключа


Обратите внимание, что инструкции, приведенные в основном ответе, неясны. Чтобы обновить таблицу

  1. Откройте область конструктора dbml
  2. Выберите все таблицы с помощью Right-> Click-> Select All или CTRL a
  3. CTRL x (Вырезать )
  4. CTRL v (Вставить)
  5. Сохранить и перестроить решение.
2
ответ дан 23 November 2019 в 05:22
поделиться

I would recommend using the visual designer built into VS2008, as updating the dbml also updates the code that is generated for you. Modifying the dbml outside of the visual designer would result in the underlying code being out of sync.

2
ответ дан 23 November 2019 в 05:22
поделиться
Другие вопросы по тегам:

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