|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Доброго вечера, дорогие форумчане. Помогите пожалуйста решить очередные мистические вопросы программирования. Разрабатываю проект со взаимодействием БД в нем. Создаю консольное приложение, а точнее библиотеку, но тестирую её через изменение свойств(компилировать как консольное приложение). Для соединения с БД решил использовать EF6. Пару часов мучительных работ и CodeFirst был создан вручную, но при попытке получить данные из таблицы получаю пустой массив. Ну думаю где-то накосячил и решился воспользоваться автогенератором CodeFirst, все создалось за пару секунд, но вновь при попытке взять данные с БД получаю пустой массив. Снова подумал, может что-то с БД не так, подключаю старую базу, которая уже давно функционирует и снова при попытке получить данные получаю пустое значение. Думал, может EF кривой, запустил свой старый WPF проект, который работал со второй БД о которой писал выше и получил нужные мне данные без каких-то проблем. Вновь мысль, может пока писал код консольного приложения где-то что-то запорол, создаю абсолютно чистое консольное приложение, добавляю Nuget пакет EF 6.2.0 и пробую обратиться к той БД с которой на WPF получилось вернуть данные, но надежда умирает последней, что и случилось - вновь возвращается пустое значение. Объясните пожалуйста, что может быть не так? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2018, 22:25 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
вы сами-то как считаете, этой информации достаточно, чтобы оказать вам какую-либо помощь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2018, 23:07 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Shocker.Pro, Сейчас попробую подробней написать. И немного не по теме, не подскажете, есть ли возможность задать вторичный ключ в EF6 (не Core) через OnModelCreating ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 00:27 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
для связи 1 к 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 00:28 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skewдля связи 1 к 1один к одному таблы и так не делают, а тут еще и с вторичным? Это как? Дайте dml. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 07:18 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, Скрипт создания таблиц БД Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Автосгенерированный класс ListOfBlock Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Автосгенерированный класс Instagam Код: c# 1. 2. 3. 4. 5. 6.
Модератор: Учимся использовать тэги оформления кода - FAQ Вот получается при вызове ListOfBlock подгружается таблица, а к ней сразу указатель на нужного пользователя, который связан ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 13:49 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew, И где тут 1 к 1? Один ко многим. Во вторую таблу добавить поле id. Для одного uri insagram можно занести 3 записи во вторую таблу. Попробуй. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 14:14 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skewCodeFirst был создан вручную, но при попытке получить данные из таблицы получаю пустой массив.а вот этот код где? может просто virtual забыл написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 14:15 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, Извиняюсь, не совсем понял, можете пояснить? Почему Один ко многим идет? Ведь в таблице Instagram может находиться только 1 строка с уникальным Id. Далее в таблице ListOfBlock так же этот уникальный Id должен присутствовать лишь единожды. Сейчас чтобы все заработало я сделал так, но хочется вынести все в OnModelCreaiting Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 17:26 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew, При написании поста нажми кн. Table и оформи 2 таблички типо так: Код Имя Возраст33 Иван 2234 Иван 21 Тогда смогу ответить на твой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 17:52 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, Instagram: Id Uri DateOfRegistrationn1skew 26.04.20182Petro123 25.04.2018 ListOfBlock InstagramId ExpirationDate1 28.04.2018 Итого пользователь с Id = 1 будет в блокировке до 28.04.2018 согласно второй таблице. Но поскольку просто брать из таблицы список Id и перебором искать в списке пользователей не есть гуманное решение, то в класс ListOfBlock так же добавлена ссылка на генерируемый класс Instagram, который должен брать соответствующий Id и загружать по нему данные с базы ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 18:57 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew, Другое дело. 1. В каждой табле должен быть PK. Делай. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 19:19 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, а после? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 19:25 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skewPetro123, а после?там сам увидишь что если один к одному то объединить в одну таблу. Если один ко многим, то .... Ты делай. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 19:40 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, Так в том и проблема, что netframework не имеет связи один к одному (HasOne) (ну или я не нашел). В .netCore есть такое ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 19:51 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skewPetro123, Так в том и проблема, что netframework не имеет связи один к одному (HasOne) (ну или я не нашел). В .netCore есть такое Одну таблу делай. 10 раз сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 19:55 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, а в нее положить List<ListOfBlock> ? Тогда будет связь один ко многим, но чтобы найти кто в блокировке нужно будет всех пользователей перебрать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 20:01 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew,& что мешает перенести ExpirationDate в таблицу instagram ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 20:16 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
big-dukeskew,& что мешает перенести ExpirationDate в таблицу instagram ?я об этом и говорю, только как об стену. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 20:18 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
Petro123, Ну добавлю я еще пару полей в таблицу ListOfBlock, это ж сколько дублей данных нужно хранить, который никак зачастую могут не использоваться. И снова к моменту трудозатрат, будет в таблице instagram 1кк пользователей, два человека в блокировке. Это чтобы мне их найти нужно весь список перебрать, только зачем так усложнять? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:35 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew, Дублей у вас не будет, так как 1:1. Данные у вас же не текстовом файле хранятся, значит СУБД, которая и осуществит выборку данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:46 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
big-duke, ну предположим поле помечено как NULL и допускает пустое значение, но вторая проблема остается актуальной, чтобы найти тех пользователей у который поле не равно null, то это обработка всего массива пользователей, что алгоритмически даст скорость выполнения O(n), против константного времени О(1) - это при условии, что список заблокированных вынесен в отдельную таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 23:14 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
skew, во-первых, в СУБД есть индексы. Во-вторых, некоторые СУБД, например MSSQL, умеют индексировать поле с NULL, что в плане запроса даст Index Seek, а не Table Scan. У вас есть какой-то лимит по времени запроса или тесты, доказывающие, что если хранить данные раздельно, то будет драматический рост времени выполнения запроса ? Можно, например, раз в сутки или другой интервал делать выгрузку заблокированных пользователей в отдельную таблицу. И потом запросы делать к ней, а не к исходной таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 23:48 |
|
Мистика Entity Framework
|
|||
---|---|---|---|
#18+
big-duke, Мы сейчас уже начинаем уходить в сторону возможностей SQL, оптимизации и алгоритмизации. А я всего-то хотел узнать как в OnModelCreating установить ForeignKey для второй таблицы. Сейчас я устанавливаю его при помощи атрибута, да, все работает, но просто красота кода теряется, вот и задался вопросом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 00:58 |
|
|
start [/forum/topic.php?fid=17&msg=39637048&tid=1349197]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
200ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 556ms |
0 / 0 |