Существует много мнений по поводу LINQ2SQL и того, является ли он «устаревшим» или «прекращенным».Но он все еще находится в среде .NET и является хорошим инструментом, поэтому, если он соответствует вашим потребностям, вы должны его использовать.Откровенно говоря, Entity Framework все еще не совершенен, и если вам не нужна дополнительная гибкость, которую он предоставляет, то это не стоит боли.Если бы у меня был небольшой проект среднего размера, то я бы определенно использовал LINQ2SQL снова (и поверх EF).
Что касается вашего вопроса, да, вы потеряете любые имена или сопоставления различных типов при удалении и повторном добавлении таблицы.Мне известны следующие варианты:
- Только удалить / повторно добавить измененную таблицу (не все таблицы)
- Попробуйте изменить таблицы DBML, а неудалить / повторно добавить.Вы можете добавлять и удалять столбцы, изменять имена столбцов и типы данных, добавлять все связи в DBML.
Мне нравится предложение JcMalta создавать объекты как классы перед рендерингом в базу данных, но если вы найдете SQLСтудия, с которой можно быстро разрабатывать, тогда может быть просто быстрее создавать таблицы, где их можно поместить в ваш DBML.Прикосновение раздражает необходимость что-то менять в базе данных и вносить изменения в ваш код, но инструменты генерации кода довольно хороши и снимают большую часть боли.