|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ребят, подскажите пожалуйста как связь один к одному сделать в Code First логике EF. У меня есть таблица "Карточки", с полями: НомерКарточки и ИдЗаписи. И есть таблица "Записи" где есть ИдЗаписи и ещё несколько чисто информативных полей, дата, время... Так вот, когда выдается карточка в таблицу "Карточки" записывается НомерКарточки, допустим "1" и ИдЗаписи допустим "21". Соответственно в таблицу "Записи" записывается ИдЗАписи (21) и остальные информативные поля. Когда карточка возвращается, мы находим в поле НомерКарточки номер возвращенной карточки (1) и удаляем эту запись, при этом в таблице "Записи" всё остается. Т.е. таблица "Карточки" должна быть такая, динамическая, я ее хотел без поля Id сделать, но на сколько я понял, в CodeFirst без поля ID не обойтись. Подскажите как правильней будет организовать поля в табице? Я так понимаю связь создается один к одному, но не возникнет ли у меня проблем при удалении из таблицы "Карточки"? Как сделать уникальное поле "НомерКарточки"? т.е. чтобы цифры там не повторялись. И обязательно ли поле Id? Как можно без него обойтись? Был бы очень признателен примеру подобного класса! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 03:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Немного снизошло озарение, сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Надеюсь что правильно составил, хотя поле CardNumber наверняка не уникальное... Теперь не знаю как вывести в один дата грид связанные таблицы? Получается только либо одну, либо другую: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Если связь действительно 1:1, то "ID записи" не нужно. Зачем вводить лишнюю сущность? При связи 1:1 используется единый ключ. Класс при этом в CF объявляется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
тогда, делая выборку из Card вы получите выборку из двух таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Вот даже как... А при это я смогу удалять записи из Таблицы Cards, но чтобы в таблице Person связанные записи оставались? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:25 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
и ещё вопрос, а как всё таки мне теперь из таблицы Cards всё вытащить? по прежнему вытаскивается только два поля... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuВот даже как... А при это я смогу удалять записи из Таблицы Cards, но чтобы в таблице Person связанные записи оставались?Нет. Это тогда уже не связь 1:1 будет. viton-zizuи ещё вопрос, а как всё таки мне теперь из таблицы Cards всё вытащить? по прежнему вытаскивается только два поля...Откуда там два поля? Там сейчас всего одно поле - Id. A вот в Person - три поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Да, я понял уже что это не то что мне нужно)) Откатился назад к моей прежней схеме сущностей. Суть в том что мне нужно с таблицы Cards записи будет удалять и чтобы при этом записи в Persons оставались! Запись в базу у меня получается, там ничего сложного, но вот вывод связанных таблиц не удается, либо одна, либо вторая выводятся таблицы, а как все таки связать!? Как то же люди такие связи реализуют... в инете примеры только с одной таблицей ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, какие связи-то? Какие у Вас отношения между Карточками и Человеками? Зачем к примеру Человеков от Карточек наследовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Связь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку и наоборот ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuСвязь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку и наоборотнадо определиться, где находиться первичный ключ (первичные ключи), тогда будет понятно со связями. Если первичные ключи в каждой таблице свои, то это никак в схему 1:1 не вписывается, можно только ограничение на уникальность поля поставить в таблице, но это будет 1:M ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
первичные ключи и там и там, следовательно 1:М. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ну раз так, при выборке из Card использовать .Include(n => n.Person) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuСвязь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку...Не факт. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
но у одного человека может быть несколько карточек :) P.S.: от термина "карточка" попахивает DocsVision ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProНу раз так, при выборке из Card использовать .Include(n => n.Person) Воот! Сейчас опробую!) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А как записи в таблицу добавлять, я делаю так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
И у меня почему то два раза добавляется в таблицу Person и один раз в Card, стоит только удалить поле с *, так все нормально записывается, но соответственно в это поле ничего не попадает и я не могу зависимости прописать! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
создавайте сущности не через new, а через контекст Persons.Add.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Я их вроде так и создаю, это все потом передается вот сюда: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
то есть полностью формирую card а потом уже с помощью add добавляю ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Забавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Вот тут: Код: c# 1.
personModel еще не принадлежит контексту ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят.для нормальной разработки без EF нужно знать SQL. Для нормальной разработки на EF нужно знать EF и... SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:51 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProskyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят.для нормальной разработки без EF нужно знать SQL.NoSQL набирает обороты, так что не обязательно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 13:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят. Топик забавен только тем, что люди не умеют пользоваться поиском. Решение находится на раз-два, это делается ОЧЕНЬ просто и легко. Но надо же развести демагогию на пустом месте ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 00:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANANoSQL набирает обороты, так что не обязательно :) Реляционные СУБД и NoSQL даже рядом не взаимозаменяющие вещи, хотя позиционируются они почему-то в формате SQL vs. NoSQL. Это примерно из того же разряда, что «Кошерный гиковый JavaScript набирает обороты и очень скоро похоронит C, C++, Java, C# и прочие убогие языки» ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 00:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Эх на мусолили, а по делу то никто и не подсказал!) Проблема была в том, что нужно только один контекст создавать!) и не запихивать лишние поля с Id У меня такие сложности с освоением code first в связи с тем, что мало статей на русском, в которых бы развернуто все объяснялось. Примеров тоже не много удалось найти, которые находил, были в одну таблицу, т.е. совсем тривиальные. Находил хорошие статьи на английском, но они довольно массивны, а их проблематично читать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 07:10 |
|
|
start [/forum/topic.php?fid=17&msg=38783958&tid=1349680]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 261ms |
0 / 0 |