У меня есть вопрос, похожий на this , но в контексте L2S.Я хочу создать таблицу поиска для хранения значений, которые могут быть одним из нескольких возможных типов данных.Как предложено в указанном вопросе, я мог бы использовать sql_variant
тип данных.Однако L2S отображает sql_variant
в Object
, что является неоптимальным.Я предполагаю, что можно получить метаданные таблицы, чтобы узнать точный тип, но я ожидаю, что это будет слишком грязно.Кто-нибудь пробовал это?
Другая возможность состоит в том, чтобы разделить данные по нескольким таблицам, каждая из которых содержит одно строго типизированное поле и главную таблицу, которая будет содержать дискриминатор.Но здесь я сталкиваюсь с другой проблемой: L2S поддерживает только один тип наследования: таблица на иерархию классов.Поэтому, естественно, моей следующей мыслью было поместить все столбцы значений и дискриминатор в одну таблицу.Таким образом, у меня мог быть абстрактный родительский класс и несколько наследующих членов.Столбцы должны называться как-то как ValueInt, ValueDec и т. Д., Хотя в ORM я могу переименовать их все в Value.Таким образом, это похоже на правильное решение, но все еще немного неловко: все NULL в таблице для одного.Кто-нибудь с лучшими мыслями?
PS Кроме того, все значения поиска в настоящее время хранятся в виде applicationSettings в файле конфигурации, который обеспечивает строгую типизацию, но есть и другие проблемы с ним.