Entity framework
От: Аноним  
Дата: 25.02.11 09:10
Оценка:
Добрый день,

У меня есть вопрос по поводу Entity framework.
Я хочу реализовать хитрую схему: Есть сущность "Блог", "Фото" и "Коментарий". В коментарии есть форенкей под названием "ОбъектИД", в котором может хранится ссылка на блог или на фото.

Вообще идея такая, чтобы иметь одну общую сущность "Коментарий" для сколь угодно многих сущностей.

Зараза ентити фреймворк ругается, при добавления коментария в блоге, сообщая, что нужно еще и в фото добавить такой же ключ.

Что делать и как быть?
Re: Entity framework
От: nauro Украина  
Дата: 25.02.11 09:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день,


А>У меня есть вопрос по поводу Entity framework.

А>Я хочу реализовать хитрую схему: Есть сущность "Блог", "Фото" и "Коментарий". В коментарии есть форенкей под названием "ОбъектИД", в котором может хранится ссылка на блог или на фото.

А>Вообще идея такая, чтобы иметь одну общую сущность "Коментарий" для сколь угодно многих сущностей.


А>Зараза ентити фреймворк ругается, при добавления коментария в блоге, сообщая, что нужно еще и в фото добавить такой же ключ.


А>Что делать и как быть?


сделать два форенкея (default null) и добавить констрейнс в базу на заполнение хоть одного из них?
-----------------------------------------
тут может быть ваша реклама
Re[2]: Entity framework
От: Аноним  
Дата: 25.02.11 09:23
Оценка:
Здравствуйте, nauro, Вы писали:

N>сделать два форенкея (default null) и добавить констрейнс в базу на заполнение хоть одного из них?


Идея сделать все в общем виде не привязываясь конкретным коментируемым сущностям. Например если я потом добавлю "Товар" или другую сущность — не надо будет на нее заводить отдельный ФК.
Re: Entity framework
От: HowardLovekraft  
Дата: 25.02.11 09:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть сущность "Блог", "Фото" и "Коментарий". В коментарии есть форенкей под названием "ОбъектИД",

А>в котором может хранится ссылка на блог или на фото.
А>Вообще идея такая, чтобы иметь одну общую сущность "Коментарий" для сколь угодно многих сущностей.

По каким признакам СУБД и EF будут понимать, что вот этот конкретный "ОбъектИД" относится к сущности "Фото", а следующий — к сущности "Блог"?

А>Что делать и как быть?


1. Уберите FK-ассоциацию из "Коментарий".
2. Создайте свои FK,ассоциации, ссылающиеся на "Коментарий" в каждой из сущностей "Блог" и "Фото".
Re[2]: Entity framework
От: Аноним  
Дата: 25.02.11 10:25
Оценка: :)
Здравствуйте, HowardLovekraft, Вы писали:

HL>Здравствуйте, Аноним, Вы писали:


А>>Есть сущность "Блог", "Фото" и "Коментарий". В коментарии есть форенкей под названием "ОбъектИД",

А>>в котором может хранится ссылка на блог или на фото.
А>>Вообще идея такая, чтобы иметь одну общую сущность "Коментарий" для сколь угодно многих сущностей.

HL>По каким признакам СУБД и EF будут понимать, что вот этот конкретный "ОбъектИД" относится к сущности "Фото", а следующий — к сущности "Блог"?

Теоретически они и не должны. Коментарии должны прицеплятся к обьекту, но им не обязательно строго указывать объект на который они ссылаются. На практике смысла нет по коментарию указывать запись в блоге.

HL>1. Уберите FK-ассоциацию из "Коментарий".

HL>2. Создайте свои FK,ассоциации, ссылающиеся на "Коментарий" в каждой из сущностей "Блог" и "Фото".

Идея сделать все в общем виде не привязываясь конкретным коментируемым сущностям. Например если я потом добавлю "Товар" или другую сущность — не надо будет на нее заводить отдельный ФК.
Re: Entity framework
От: Neco  
Дата: 25.02.11 12:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что делать и как быть?

Судя по всему, без EF у Вас всё работает как надо? Можно ли, в таком случае, взглянуть как выглядят таблицы? Я просто не могу вкурить как это может выглядеть на уровне реляционной БД.
всю ночь не ем, весь день не сплю — устаю
Re: Entity framework
От: skodnik  
Дата: 25.02.11 13:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день,




А>Что делать и как быть?


Создай ентити "EntityWithComment" и от нее унаследуй "Блог" и "Фото". А у "Коментария" будет отношение с "EntityWithComment".
Re[3]: Entity framework
От: skodnik  
Дата: 25.02.11 13:07
Оценка:
Здравствуйте, Аноним, Вы писали:



А>Например если я потом добавлю "Товар" или другую сущность —

и ее же унаследуй от "EntityWithComment" о которой я написал в предыдущем посте
Re[2]: Entity framework
От: Аноним  
Дата: 25.02.11 14:42
Оценка:
Здравствуйте, skodnik, Вы писали:

S>Здравствуйте, Аноним, Вы писали:

S>Создай ентити "EntityWithComment" и от нее унаследуй "Блог" и "Фото". А у "Коментария" будет отношение с "EntityWithComment".

А как тогда будет выглядеть маппинг на БД?
Re[3]: Entity framework
От: skodnik  
Дата: 25.02.11 15:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, skodnik, Вы писали:


S>>Здравствуйте, Аноним, Вы писали:

S>>Создай ентити "EntityWithComment" и от нее унаследуй "Блог" и "Фото". А у "Коментария" будет отношение с "EntityWithComment".

А>А как тогда будет выглядеть маппинг на БД?

В студии нажми Generate Database from model — увидишь. Рассказывать куда дольше.
Сделай модель в дизайнере EF а затем сгенери базу.
Наоборот — не осилишь.
Re[4]: Entity framework
От: Аноним  
Дата: 25.02.11 17:01
Оценка:
Здравствуйте, skodnik, Вы писали:

S>В студии нажми Generate Database from model — увидишь. Рассказывать куда дольше.

S>Сделай модель в дизайнере EF а затем сгенери базу.
S>Наоборот — не осилишь.

Ок, посмотрел как сгенерилась база. Идея понравилась. Так и реализую, через промежуточную таблицу. Только базу немного поправлю, для более удобочитаемых имен. Пойду пробовать

Бесконечных интернетов тебе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.