| 
 | 
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Подскажите люди добрые такой вопрос ( может кто встречался) Есть модель: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и модель: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. как вы наверно заметили, поле statBeginID и statEndID ссылаются на ID модели Station. Для чего это сделано? Station - хранит станции. statBeginID-это станция отправления локомотива statEndID-станция прибытия локомотива. Так вот как мне связать эти таблицы? Вот контроллер: Код: c# 1. 2. 3. 4. 5. и тут ошибка: SqlException: Недопустимое имя столбца "Station_ID". Как мне это исправить? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 04:56 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Тебе надо cконфигурировать навигационные свойства в методе контекста OnModelCreating. Что-то наподобие: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 07:02 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat    Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ругается на .HasOne(x => x.statBegin) :( ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 12:42 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, Возьмите любой пример один ко многим с FK. И отработайте его чтоб работало. ... Поле statBeginID лишнее. Есть поле класса. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 12:51 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanumanругается на  .HasOne(x => x.statBegin) :( Мне сейчас без интеллисенса вспомнить точный вызов тяжело, поизучай вот это: https://docs.microsoft.com/en-us/ef/core/modeling/relationships - там все описано. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 13:17 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Petro123  Поле statBeginID лишнее. Есть поле класса.  Не совсем понял, почему это поле лишнее? А тогда поле statEndID тоже лишнее? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 15:28 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, Угу. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 15:32 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  HanumanPetro123  Поле statBeginID лишнее. Есть поле класса.  Не совсем понял, почему это поле лишнее? А тогда поле statEndID тоже лишнее? Вообще, можно и так и так. Раньше то ли требовалось (то ли просто было принято - уже не помню) дублировать навигационные свойства айдишниками ентитей на которые они указывают. Сейчас это необязательно, есть, в общем-то сторонники такого подхода (иногда это позволяет некоторые дела ускорить). Лично мне эта избыточность не нравится, ибо POCO, коде-ферст и бла-бла-бла. К тому же (не уверен насчет обычного EF) в ефкоре это доступно через т.н. Shadow Properties (это поля БД, которые доступны, но не отмепленны на свойства объекта). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 15:53 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, Сейчас попробовал (EF Core) смотри, тут есть еще такая засада, что есть ограничение - одно свойство, в этом случае Код: c# 1. не может учавствовать сразу в двух отношениях (ну, это, типа ЕФ так себя ведет). Так что надо либо его вообще убрать и работать только через свойства statBegin, statEnd и делать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. , либо заводить два разных WeightNorms: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Ни в том, ни в другом случае на структуру самой БД это не повлияет. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 16:23 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Во втором куске кода, там конечно,  Код: c# 1. и Код: c# 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 16:25 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat    Код: c# 1. Как я понял в первом варианте в модели я это удаляю. тогда у меня модель останется: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Ну и естественно код который вы предложили. Насчет использования Код: c# 1. 2. Это может быть и лишнее, но на данный момент мне так проще, я вижу все поля своих таблиц, и мне как новичку это удобно. В моем коде если вы его посмотрите, многое можно оптимизировать, что то лишнее, что то можно было более компактно описать :) так что не судите строго за "кривой код" :) за все советы спасибо :) завтра буду тестировать, и отпишусь о результатах :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 19:11 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, да, только Код: c# 1. убери еще, а то ошибка будет. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 19:13 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, Чем неудобны доп. поля с айдишкаим - они при изменении сущности могут рассинхронизироваться с указателями. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.05.2019, 19:16 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat  Чем неудобны доп. поля с айдишкаим - они при изменении сущности могут рассинхронизироваться с указателями.  Получается в самой БД эти поля тоже не нужны? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 05:42 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Собственно вот так у меня заработало: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. На HasOne у меня ругался, возможно моя версия EF это не поддерживает. .IsRequired(false) - тоже начал ругаться, просто удалил ( может я не прав поправьте меня) Спасибо Вам товарищи что помогли разобраться :) Эта наверно не последняя моя тема с просьбой помочь, так что буду Вам рад :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 06:16 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanumanfkthat  Чем неудобны доп. поля с айдишкаим - они при изменении сущности могут рассинхронизироваться с указателями.  Получается в самой БД эти поля тоже не нужны? Нет, в БД они конечно нужны (иначе как EF посвязывает эти сущности). Просто при code first они автоматом создадутся в миграции, при db first нужен будет дополнительный fluent вызов чтобы дать EF понять какое поле в БД отвечает за эту связку. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 06:42 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  HanumanСобственно вот так у меня заработало: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. На HasOne у меня ругался, возможно моя версия EF это не поддерживает. .IsRequired(false) - тоже начал ругаться, просто удалил ( может я не прав поправьте меня) Спасибо Вам товарищи что помогли разобраться :) Эта наверно не последняя моя тема с просьбой помочь, так что буду Вам рад :) Да, я пробовал на EF Core - там немного по-другому. Но, вообще, мне кажется, что EF Core и так бы заработал, на основе conventions - он по-умолчанию если видит указатель от одной entity к другой, то связывает их по FK базы данных. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 06:46 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Вот еще вопрос, к теме не относится, но я его задам что бы не создавать новую тему :) В модели есть поля: Код: c# 1. 2. 3. База создавалась вот так: Код: sql 1. 2. 3. у меня допускается значение NULL, но вылазит ошибка The 'waSCC' property on 'WorkArea' could not be set to a 'null' value. You must set this property to a non-null value of type 'System.Decimal Почему то ругается на нулевые поля. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 07:22 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Тут наверно нужно использовать все таки  IsRequired() , но у меня на него почему то ругается.... Может опять из за версии EF :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 07:27 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, Код: c# 1. 2. 3. для nullable полей БД надо свойства модели тоже объявлять как nullable, имхо, это даже интуитивно должно быть очевидно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 08:17 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat Вот моя не внимательность :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2019, 15:41 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Так а я не понял - почему у ТС не работает код из первого примера? У него же всё правильно (почти). Petro123Поле statBeginID лишнее. Есть поле класса. Что это значит?? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 11:48 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомТак а я не понял - почему у ТС не работает код из первого примера? Потому что отношение было ен сконфигурировано. Там же ниже все расписано. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 12:14 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatАгнец за бортомТак а я не понял - почему у ТС не работает код из первого примера? Потому что отношение было ен сконфигурировано. Там же ниже все расписано. Ты про Fluent API? Это для какой EF? Для EF 6 - Fluent API - опция, выбор. Того, что сделал ТС - должно быть достаточно. И потом - SqlException - не про "отношение было ен сконфигурировано" Может быть - он пытается создать БД, не уничтожив предыдущую? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 12:30 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомЧто это значит?? это оверхед. В коде можно и нужно работать через поле класса сущности, а не через поле ID сущности. Кодами FK занимается ОРМ. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 15:23 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Petro123это оверхед. И давно? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 17:37 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомPetro123это оверхед. И давно? В следующий раз вставь javascript:document.querySelectorAll('table.af-userid-27411').forEach(e => e.style.display = 'none') в адресной строке браузера и нажми Ввод :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 17:43 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомPetro123это оверхед. И давно?тебе сказали что фореген кей не пишут. А ты про слово оверхед. Лучше скажи - НЕТ, Я ПИШУ FK. И закончим на этом) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 20:21 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Petro123Агнец за бортомпропущено... И давно?тебе сказали что фореген кей не пишут. А ты про слово оверхед. Лучше скажи - НЕТ, Я ПИШУ FK. И закончим на этом) Я ни}{рена не понял. Давно в EF не надо указывать вот это? Код: c# 1. 2. 3. 4. 5. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 20:36 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомвот этовот это что вот это? Разговор был про конкретный FK. А ты написал белиберду с гуидом. Нормальный FK с integer не надо дублировать со времен ОРМ. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 20:56 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Petro123А ты написал белиберду с гуидом. Петя, тебе гуид не понравился? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 22:19 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatСейчас это необязательно, есть, в общем-то сторонники такого подхода Где-нибудт в доке, есть про это? Вот тут указывают. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 22:24 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомГде-нибудт в доке, есть про это? No Foreign Key Property No Foreign Key PropertyWhile it is recommended to have a foreign key property defined in the dependent entity class, it is not required. If no foreign key property is found, a shadow foreign key property will be introduced with the name <navigation property name><principal key property name> ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2019, 23:56 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatАгнец за бортомГде-нибудт в доке, есть про это? No Foreign Key Property No Foreign Key PropertyWhile it is recommended to have a foreign key property defined in the dependent entity class, it is not required. If no foreign key property is found, a shadow foreign key property will be introduced with the name <navigation property name><principal key property name> И в "простой" EF можно было также? А как менять значение такого поля? С фронта приходит ID, получается - надо доставить из базы сущность по этому ID, чтобы её присвоить? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 00:30 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомИ в "простой" EF можно было также? Да, со времен появления code-first и POCO. Агнец за бортомА как менять значение такого поля? С фронта приходит ID, получается - надо доставить из базы сущность по этому ID, чтобы её присвоить? В коре это можно сделать через соответствующее "shadow property", как по ссылке написано. В "обычном" - не знаю, подозреваю даже, что никак - только доставать из базы связанную сущность. Но, в общем-то, все равно, перед тем как менять FK неплохо бы убедиться, что то, на что он будет ссылаться действительно существует (т.е. как раз эту сущность и запросить), потому что иначе надо ловить и обрабатывать SqlException, а с этим вообще беда, т.к. сиквель инфу об ошибке вообще практически никак не стуктурирует - пришла тебе строка с ошибкой, и бери гадай, что конкретно это за ошибка. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 01:35 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомPetro123А ты написал белиберду с гуидом. Петя, тебе гуид не понравился?да. Зачем запутывать пример про FK? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 07:10 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомА как менять значение такого поля? С фронта приходит ID, получается - надо доставить из базы сущность по этому ID, чтобы её присвоить?конкретнее. Обычно приходит сущность. И обычно update FK не делают. А доставать сущность из базы практически всегда надо. БЛ ведь). ... Покажи как ты меняешь базу не вытаскивая сущности. Ближе к коду! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 07:16 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Petro123Обычно приходит сущность. Ты что несёшь? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 09:51 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Агнец за бортомPetro123Обычно приходит сущность. Ты что несёшь?бинес сущность в json. Ты не выспался? Или терминологию забыл. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 09:57 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я понял. У тебя только одна транзакция и сущность которая в базе.  Поэтому такая реакция. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 10:00 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Стало интересно чем все закончится :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 16:56 | 
  
  
  
   | 
||
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Hanuman, забанят петю :( ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.05.2019, 17:57 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?all=1&fid=17&tid=1349124]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    69ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    67ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 267ms | 
| total: | 445ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...