Это не могло бы быть тем, что OP означал спрашивать, но я думал, что мог бы добавить это здесь.
у меня недавно был уникальный случай полиморфизма дб в проекте. Мы имели между 60 - 120 возможными классами, каждым с его собственным набором 30 - 40 уникальных атрибутов и приблизительно 10 - 12 общих атрибутов на всех классах. Мы решили пойти путем SQL-XML и закончили с единственной таблицей. Что-то как:
PERSON (personid,persontype, name,address, phone, XMLOtherProperties)
содержащий всю общую собственность как столбцы и затем большой набор свойств XML. Уровень ORM был тогда ответственен за чтение/запись соответствующих свойств от XMLOtherProperties. Немного как:
public string StrangeProperty
{
get { return XMLPropertyBag["StrangeProperty"];}
set { XMLPropertyBag["StrangeProperty"]= value;}
}
(мы закончили тем, что отобразили xml столбец как Hastable, а не документ XML, но можно использовать любые иски DAL лучше всего)
Он не собирается получать любые премии дизайна, но он будет работать, если у Вас будет большое (или неизвестный) количество возможных классов. И в SQL2005 можно все еще использовать XPath в SQL-запросах для выбора строк на основе некоторого свойства, которое хранится как XML.. это - просто маленькая потеря производительности для принятия.
Если вы собираетесь использовать его в много ваших запросов, вы можете установить его по умолчанию через свойство конфигурации connection.isolation
.