| 
 | 
| 
 
Модель со связанными таблицами 
 | 
|||
|---|---|---|---|
| 
 #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 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=17&msg=39814363&tid=1349124]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    15ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    49ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    58ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 15ms | 
| total: | 171ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.