2010-03-22 3 views
24

В настоящее время я изучаю C# и LINQ. У меня много вопросов о них. В принципе, мне нужно пошаговое руководство.C#, откуда берется файл dbml?

  1. Я полагаю, файл dbml является конфигурационным файлом базы данных. Если я дважды щелкнуть файл dbml, то VS откроет его в диаграмме дизайна. Могу ли я создавать/удалять/изменять таблицы здесь? Я могу использовать add new item, чтобы добавить LINQ to SQL Classes, чтобы получить файл dbml?

  2. Что дальше? Создать таблицы в базе данных? Генерировать SQL-скрипт? Сгенерировать файлы cs? Когда? Как?

ответ

24

DBML-файл вообще не связан с сервером базы данных. Это полностью клиентская вещь. Это, по сути, набор информации о ваших таблицах в базе данных и о том, как вы собираетесь сопоставлять их с объектами .NET.

Конечно, вы можете перетащить таблицу из базы данных и иметь Visual Studio для вывода некоторой информации для вас автоматически, но изменение файла не повлияет на базу данных. Вы можете создать файл DBML с нуля без какой-либо базы данных.

Внутренний файл DBML представляет собой просто файл XML, который загружается в пользовательский инструмент Visual Studio и генерирует файлы .cs, представляющие объектную модель LINQ для вашей базы данных.

+0

есть ли способ обойти файл dbml для создания файла .cs? У моей коллеги есть эта команда: sqlmetal/server: dwasilew \ sqlexpress/database: Ande /code:Ande.cs Я думаю, файл Ande.cs создается в этой команде. не указан .dbml. – 5YrsLaterDBA

+0

@ 5Yrs: 'SQLMetal' - это инструмент, который (1) может генерировать' dbml' из базы данных (2), может генерировать код из 'dbml' (3), может оптимизировать два указанных процесса и исходный исходный файл непосредственно из базы данных , Visual Studio по сути делает то же самое с графическим интерфейсом. Вы можете увидеть различные аргументы командной строки для SQLMetal здесь: http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

DBML-файл - это сопоставление, которое определяет ваши классы на основе схемы базы данных. Да, он определяет вашу (по умолчанию) строку подключения, но она вообще не «настраивает» вашу базу данных.

Linq to Sql использует подход, основанный на базе данных, где у вас есть база данных и моделируйте свои классы после схемы БД. Перетащив &, отбросив на нем таблицу, вы будете автоматизировать создание классов, поэтому вам не нужно вводить их. Вы можете изменить имена свойств и т. Д., И сопоставление между свойством и его правильным именем столбца базы данных останется неизменным.

2

Да, файл DBML создается при добавлении класса Linq в SQL. В дизайнере (что вы видите при двойном щелчке по файлу DBML) вы можете перетащить на него таблицы (из проводника сервера). Затем вы можете ссылаться на эти таблицы в своем коде. Есть более чем несколько Getting Started учебники там:

Проверить этот вопрос SO Подробности:

https://stackoverflow.com/questions/481244/can-anyone-recommend-a-good-tutorial-for-learning-linq2sql

+0

Связанный вопрос SO, кажется, был удален или перемещен или что-то еще ... – Alex

+0

Ну, этому сообщению 7 лет :-). Linq to SQL считается мертвым по сегодняшним стандартам. Если вы не работаете с устаревшим кодом, я бы подумал об использовании чего-то другого, такого как Entity Framework. – HitLikeAHammer

Смежные вопросы