
Gid
18.01.2017
13:41:12
в идеале ты делаешь вот так
class Door{
public int Id {get;set;}
...
public DoorType DoorType {get; set;}
}
class DoorType {
public int Id {get;set;}
public int Name {get; set;}
...
public List<Door> DoorList {get; set;}
}
это поко классы для дб

Alex
18.01.2017
13:43:16
так и есть

Google

Gid
18.01.2017
13:43:48
тогда в чём проблема получить сущность по айди
целую
изменить
и сохранить в дб?
есть же такая штука как Include

Alex
18.01.2017
13:45:52
так она у меня вся и получена.
Всё выводится.
когда я меняю значение в combobox.
нажима на сохранить. Смотрю значения, то получается что в TypeDoorID=1, TypeDoor.Id=2

Gid
18.01.2017
13:45:57
dbContext.Door.Where(x => x.Id).Include(y => y.DoorType)
Получил сущность двери с её типом внутри

Alex
18.01.2017
13:46:55
там все и так отлично грузится). Я про сохранение говорю)
зло*бучие ORM. Всё время писал хранимки в бд и рад был)))

Gid
18.01.2017
13:47:49
и пишешь Update и Save
с игрлоадом

Google

Gid
18.01.2017
13:53:12
но будет работать

Alex
18.01.2017
13:53:20
Я понимаю что так могу. Но какого хуя она сама не сохраняетсЯ)

Gid
18.01.2017
13:53:23
а потом может разберёшься что не так

Alex
18.01.2017
13:53:36
хорошо, спасибо)

Gid
18.01.2017
13:58:34
Но я не помню как решил

sergik
18.01.2017
13:59:02
а ок, уже выше прочитал

Sergey
18.01.2017
14:02:15
Вот вы даете

sergik
18.01.2017
14:13:06
вроде ок всё, тогда я сути проблемы не понимаю

Pavel
18.01.2017
14:13:54
?

Alex
18.01.2017
14:14:24
когда я пытаюсь поменять тип двери. вылетает ошибка

Pavel
18.01.2017
14:15:06
Суть проблемы - Entity Framework
просто выкинь его

sergik
18.01.2017
14:15:24
логично. ты меняешь TypeDoor и не меняешь TypeDoorID
попробуй наоборот, поменять TypeDoorID и не трогать TypeDoor

Alex
18.01.2017
14:16:33
тоже самое

Gid
18.01.2017
14:16:36
Вполне вполне

Google

Sergey
18.01.2017
14:16:40
[Table("DoorTypes")]
public class DoorType
{
[Key]
public int Id { get; set; }
public virtual ICollection<Door> Doors { get; set; }
public DoorType()
{
Doors = new HashSet<Door>();
}
//...
}
[Table("Doors")]
public class Door
{
[Key]
public int Id { get; set; }
[ForeignKey("DoorType")]
public int DoorTypeId { get; set; }
public virtual DoorType DoorType { get; set; }
//...
}

sergik
18.01.2017
14:16:51

Sergey
18.01.2017
14:16:51
Проще некуда

Gid
18.01.2017
14:17:07
[ForeignKey("DoorType")]
public int DoorTypeId { get; set; }
public virtual DoorType DoorType { get; set; }
Во тут у него фейл
лол
[Key]
public int Id { get; set; }
Можно ж не писать кей

Alex
18.01.2017
14:17:39
и так виртуал. вернул как было изначально

Gid
18.01.2017
14:17:50
у ефа это и так ке
й

sergik
18.01.2017
14:18:10

Sergey
18.01.2017
14:18:14

Gid
18.01.2017
14:19:19
Вот что те сделать нужно
если ты ещё до сих пор не понял

sergik
18.01.2017
14:21:42
у него тут уже описана связь
нет смысла добавлять атрибут вообще

Gid
18.01.2017
14:22:00
не смотрел что тут

Google

Gid
18.01.2017
14:22:04
честно выглядит страшно

sergik
18.01.2017
14:22:30
тут только предпоследняя строка интересует

Gid
18.01.2017
14:22:49
Каша какая-то

Pavel
18.01.2017
14:23:04

Sergey
18.01.2017
14:23:11
Тож не люблю в онмоделкреайтинг лезть. Только по необходимости если ЕФ тупит

Admin
ERROR: S client not available

Gid
18.01.2017
14:23:18
А не ормка говно

Pavel
18.01.2017
14:23:45
А ты какие видел варианты, чтобы сравнивать?

Gid
18.01.2017
14:25:26
Или прокидывания фк?

Pavel
18.01.2017
14:25:40
Варианты работы с данными, кроме EF

Gid
18.01.2017
14:25:56

Pavel
18.01.2017
14:26:23
Первое - совсем говно

Sergey
18.01.2017
14:26:26
Хехе, мне даже в проде ОРМ от Девекспресса юзать приходилось, лол. Вот там жесть

Pavel
18.01.2017
14:26:43
по поводу АДО - я бы его заюзал, даппер вроде тоже говном показался

Gid
18.01.2017
14:26:47

Sergey
18.01.2017
14:26:50
Первая - порт явы. А порты обычно говно

Gid
18.01.2017
14:26:51
Потому юзается редко
АДО вполне норм

Google

Gid
18.01.2017
14:26:58
быстро
ЕФ надстройка над адо

Pavel
18.01.2017
14:27:10
Да, быстро и хорошо, жалко типизации строгой нет

Gid
18.01.2017
14:27:16
обычно юзают еф для поко
+ даппер в тонких местах
то есть гибрид

Pavel
18.01.2017
14:27:57
http://fsprojects.github.io/FSharp.Data.SqlClient/ - такое не думали юзать?
Вот это реально хорошая обертка над ADO

Gid
18.01.2017
14:28:13
Не, оно конечно всё классно
Но вот ты прикинь, ты упираешься в стенку, нет коммунити, нет подсказок
И ты начинаешь писать костыли
Потом это надо поддерживать
Выигрышь небольшой перед АДО будет
А ебли много, оно того не стоит

Pavel
18.01.2017
14:29:05
EF - это много ебли, почти по дефолту
Вот ту ссылку, что я дал - это 10-20 строчек на F# и всё
ну то есть тупо весть DAL пишем на F#, наружу юзаем из C# как любой дотнет
Эта группа больше не существует