Отображения LINQ-to-SQL похожи на типизированные DataSets, в том случае, когда вы их используете, вы имеете дело с сеансом, содержащим данные. Вы можете иметь одинаковые таблицы в нескольких разных DataContexts. В конце концов, они всего лишь классы; они ничего не значат, пока вы не начнете взаимодействовать с базой данных, заполняя их существующими данными или используя их для создания новых данных.
Так что, возможно, у вас есть таблицы «Клиент», «Адрес», «Телефон» и т. Д., С которыми вы работаете при отправке нового каталога. Затем у вас есть таблицы Invoice, Line Item, Product и т. Д., Которые вы используете при создании заказа. Но в последнем наборе вы также можете захотеть иметь Заказчика. Все в порядке. Вам следует просто позаботиться о том, чтобы одновременно был активен только один сеанс, чтобы вы не использовали противоречивые данные. У вас не должно быть проблем с перекрытием сущностей в ваших различных DataContexts, если вы не используете их перекрывающимся способом.
Что касается беспорядка, вы можете поместить свой DataContext в определенное пространство имен, а также вы можете поместить свои различные сущности в определенное пространство имен (хотя только одно пространство имен на набор сущностей в DataContext). Вы можете сделать это в окне свойств. Это позволит вам не усложнять Intellisense.