2013-04-24 2 views
0

У меня есть 6 столов на 100% в моей базе данных, единственное изменение - это имена. Внешний вид, как это:Entity Framework, C# и суперклассы

Offers_1, Offers_2, Offers_3 и так далее ..

Если я использую Entity Framework в моей C# форме я получаю 6 различных классов, которые по причине назван таблицами. Есть ли способ, которым я могу использовать родительский/суперкласс для этих таблиц? Возможно, у них может быть идентификатор, в котором указано, какое число они или что-то в этом роде.

Я уверен, что у кого-то еще должна была быть эта проблема раньше.

И тем, кому интересно, почему у меня 6 равных столов. Мы сделали свой собственный способ включения и выключения предложений в нашей компании, поэтому мы можем работать в автономных таблицах и иметь максимальную производительность в онлайн-таблицах.

Надеюсь, полезный разум может вести меня к свету :)

Заранее спасибо

+2

В чем ваш вопрос? Если вы, по крайней мере, не пытались решить проблему самостоятельно, это указывает на то, что вы не полностью выяснили проблему. Неясно, что вы подразумеваете под «суперклассами», этот термин не является стандартным термином программирования C#. –

+0

Мне также интересно, какое преимущество будет в том, чтобы делать что-то подобное. –

+0

Преимущество в том, что я могу работать с классами в своей системе. Вместо того, чтобы создавать новое Offer_1 AND Offer_2 AND и т. Д. Я мог бы создать одно «Предложение», и это было бы общесистемным – Oxholm

ответ

1

Вы, кажется, хотите использовать таблицу на наследование (TPH): одна таблица для нескольких типов.

Это объясняется here для модели в первую очередь.

Это объясняется (например) here для кода в первую очередь.

+0

Хм это кажется интересным, но можно ли это сделать, не влияя на базу данных (а потому не создавая новую таблицу)? Я был бы идеален, если бы это был класс, который все наследуемые классы таблиц или что-то – Oxholm

+0

Нет, для использования TPH с EF у вас должен быть столбец дискриминатора. Я БД существует, но вы должны использовать TPT (Table Per Type). Например, базовый класс. Получает ваш тип для базового класса, сначала использует код для настройки производного типа в контексте, по крайней мере, с помощью метода «HasTable». – tschmit007

0

Вы можете изменить имя строки из DBML-файла, если вы используете SQL для таблиц Linq. Делая это, вы должны быть в состоянии сказать, что вы используете в своем коде C#.