@CSharpChatЭта группа больше не существует

Страница 247 из 1888
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
тоже самое
а если сделать TypeDoor virtual?

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# как любой дотнет

Страница 247 из 1888

Эта группа больше не существует Эта группа больше не существует