В Linq-to-Sql Designer, когда я не определяю «Значение дискриминатора базового класса» для абстрактного базового класса, я получаю «Иерархия наследования с корнем« X »не определяет значение по умолчанию». ошибка во время выполнения, но если я это сделаю, я получу «Абстрактному классу« Имя класса »не должен быть назначен ключ дискриминатора наследования». ошибка. Что с ним не так?
РЕДАКТИРОВАНИЕ:
Я сам нашел причину и решение. Пожалуйста, не отвечайте на мой вопрос.
Даже если вы знаете, что в вашей базе данных нет строк, которые не совпадают ни по одному из определенных кодов наследования, в любом случае вам необходимо установить свойство «Inheritance Default» для Linq-to-Sql. Но вы не можете использовать свой абстрактный базовый класс как «Наследование по умолчанию». Таким образом, вы должны создать фиктивный неабстрактный класс, который ничего не делает (выдает исключение в конструкторе и т. Д.) И использовать его как «Inheritance Default». Оставьте "Значение дискриминатора базового класса" пустым.