|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
Сделать поля в модели уникальными через EF18.03.2021, 20:34. Показов 7126. Ответов 25
Метки entity framework (Все метки)
Доброго времени суток. У меня есть модель в EF и через миграцию генерирую соответствующую таблицу. Как силами С# задать полям этой таблицы ограничение unique?
0
|
|
| 18.03.2021, 20:34 | |
|
Ответы с готовыми решениями:
25
Не понимаю как сделать через поля, вроде задачка простая но как делать через ПОЛЯ Выбрать последние строки с уникальными значениями поля
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
|
| 19.03.2021, 05:42 | |
Сообщение было отмечено JustAnAnimal как решение
Решение
JustAnAnimal, блин, EF в первую очередь для работы с СУБД, а не для создания схемы базы. EF много чего создавать при миграциях не умеет, что реально может понадобиться в работе (с тем же EF). Я настоятельно рекомендую схему базы создавать руками, а не баловаться миграциями.
Если по вопросу, то смотрите документацию.
1
|
|
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 19.03.2021, 14:40 [ТС] | |
|
Usaga, я умею создавать руками, но сейчас по заданию мне нужен именно EF. За индексы спасибо
0
|
|
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
||||||
| 07.04.2021, 15:10 [ТС] | ||||||
|
Usaga, можно найти вариант попроще.
Тема вроде неплохо проиндексировалась, так что добавлю этот вариант, вдруг кому пригодится:
0
|
||||||
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
||
| 07.04.2021, 17:45 | ||
|
0
|
||
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 07.04.2021, 18:37 [ТС] | |
|
Usaga, а что не так с миграциями то? Ты серьезно собираешься каждое(на некоторых проектах очень частое) изменение бд переписывать руками через sql-запросы? Пока я не нашел ничего, чего бы EF не смог сгенерить, просто иногда нужно поискать. Все сейчас пользуются им и это норма. И соответственно, он умеет все больше и больше.
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
|||||
| 08.04.2021, 05:59 | |||||
|
0
|
|||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 08.04.2021, 13:06 | ||
|
Плюс SP _usp_fill_database, где все запросы INSERT, DELETE и т.д., которые заливают данные откуда-то (Excel,csv, xmlm другая база и т.д.). При необходимости изменений в схеме правятся эти хранимки. В ORM только выполняется обновление Модели. Это правильный подход, поскольку не зависит ни от каких EF и его можно использовать вообще без "Студии". Представьте ситуацию, когда есть БД и есть работающее приложение с этой БД. Но возникла потребность в проектировании нового приложения, которое связано в добавлении новых сущностей в БД. При этом старые не трогаются. С Вашим подходом нужно либо импортировать Модель и крыжить ее в новом проекте. Либо создавать по-новой всю целиком. При этом может закосячить старый проект. И я уже не говорю про пресловутую "миграцию". В общем, получается жуткий гемор. Добавьте сюда ситуацию, когда другие приложения для этой базы писаны вообще не в "студии" Usaga правильно сказал, что на базенках из десятка таблиц все это, возможно и будет фунциклировать, но на серьезных базах, с которыми к тому же работаю сотни людей, будет "термоядерный взрыв", в результате которого эти сотни любей останутся без приложения на длительный срок. Добавлено через 4 минуты Если на "некоторых" проектах возникает необходимость "частого" лазания в базу, - это значит, что разработчик изначально не серьезно подошел к проектированию СУБД, не изучил предметную область, не разобрался с документооборотом, неверно определит состав сущностей и их характеристики. Т.е. проявил скоропалительность и незрелость. Это все равно, что строить дом, не имея чертежей, а используя лишь "мысли из головы" или какие-то карандашные наброски.
0
|
||
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 08.04.2021, 13:09 [ТС] | |
|
Usaga, возможно, тут спорить не буду. Но EF не мой выбор, а выбор компании с многолетним опытом, в которой я стажируюсь. Там прямо и говорят, юзай миграции, для того они и сделаны. Значит, потенциально проектов, где нужны руки не так уж и много. Ну и да, уметь работать руками было одним из ключевых требований при отборе, но на практике я пока этого не видел. Все идет к упрощению и удешевлению разработки: фронт и бэк строятся на фреймворках, десктоп аналогично, вот и до баз данных прогресс дошел. Это жизнь, нужно привыкать. 90% случаев, где это выгодно, окупят оставшиеся 10.
p.s. "Все" это преувеличение, имелось в виду >50%. Сужу по требованиям в вакансиях, где почти повсюду EF. Добавлено через 3 минуты MsGuns, очень часто заказчик меняет требования, отсюда и изменения. Плюс все мои комментарии касаются разработки. Перед релизом можно и переписать базу руками. Это мое лично мнение, но EF получил такую популярность неспроста. Значит, он реально нужен.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 08.04.2021, 13:15 | |
|
Ни один каменщик не положит ни единого кирпича в строение, не имея при этом чертежей или "умного" прораба.
И это понятно - неправильно сложенная кладка будет разрушена, а материал (цемент, песок, кирпичи) утерян, и деньги за это не заплатят. Но вот с "базами" почему-то ситуация диаметрально противоположная. Толпы "учителей" уверяют будущих "каменщиков", что строить базы так же просто, как печь блины - первые два пойдут комом, а там, глядишь, что-то съедобное и получится. Да и всевозможные разработчики софта предлагает десятки псевдо-инструментов, усилия таким образом иллюзию "простоты". В результате появляются тысячи кривых баз, а на них тысячи убогих приложений, которые глючат и тормозят при более-менее плотной нагрузке.
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
||||
| 08.04.2021, 13:17 | ||||
1
|
||||
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 08.04.2021, 13:26 [ТС] | |
|
MsGuns, ну это вопрос не ко мне, а к лидам или кто всем этим заправляет. Но без EF я никуда не трудоустроюсь отсюда и этот пост и продолжение "подсаживания" на него. В самом деле, не могу же им запушить txt с текстом "Ваш EF - говно, как и ваш многолетний опыт, мне так на киберфоруме сказали" ?
Добавлено через 38 секунд Usaga, см выше Добавлено через 4 минуты Usaga, а вообще, я так думаю, что на большую и сложную базу никто EF ставить и не будет. Просто нужно знать, куда можно его совать, а куда нельзя.
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
|||
| 08.04.2021, 13:28 | |||
|
Ладно, не вижу смысла спорить о том, что вы не решаете. Сказал использовать - придётся использовать. Добавлено через 7 секунд Ладно, не вижу смысла спорить о том, что вы не решаете. Сказал использовать - придётся использовать.
0
|
|||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||
| 08.04.2021, 13:40 | |||
|
Вы в курсе, что перед тем, как браться за любой конкретный проект, пишутся "Исходные требования" совместно с Заказчиком, которые оформляются как договор, вполне себе конкретный юридический документ, который подписывается Заказчиком и Исполнителем ? И если через время Заказчик говорит, что вместо торгового центра нужно построить аэропорт, то составляется новый документ, который опять же подписывается и оплачивается дополнительно. Ответственность сторон - обязательно условие при реализации любых проектов, не только IT. Если в Вашей конторе этого не понимают, то это их беда. Добавлено через 11 минут Был такой случай. В 90-х. Делали проект с серьезным госзаказчиком. Все, как нужно, ИТ, ТЗ, документы - дата,подпись,прОтокол Сдали, подписали Акт, получили сполна деньги. Через время звонок от Главбуха - все замечательно, но пара отчетов не "влазят" в принтер (а тогда были в основном мартичные принтеры), нужно сделать, чтобы печать была вдоль. Мы не стали спорить, а провели анализ, выяснили, что это сделать можно, но вовсе не просто - нужно было печатать графикой. А это требовало серьезных трудозатрат. Мы нарисовали "Дополнение к ТЗ", оговорили сроки и стоимость. Отдали директору. Он глянул на цену, охренел и тут же вызвал главбуха. Вместе они приняли решения, что обойдутся тем, что есть. Вопрос был решен. Но было много раз и так, что Заказчик шел на дополнительные расходы, стремясь получить желаемое. Если Заказчик почувствует, что можно выкручивать руки Исполнителю, получая все желаемое "за так", то он будет действовать в таком ключе и далее, убедить его платить будет крайне сложно.
0
|
|||
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 08.04.2021, 13:42 [ТС] | |
|
MsGuns, "часто" я загнул для красного словца, тут неправ. Но иногда бывает, не знаю, что там юридически происходит, думаю, с доплатой. EF хорош для таких, как я, которых к серьезным проектам не допустят. Для начала это неплохо и, если честно, базу приходится часто менять из-за неопытности. Вот EF и прикрывает, так быстрее, а руки все равно не спасут при ошибках.
p.s. От рук я не отказываюсь, просто помимо этого нужен EF
0
|
|
| 08.04.2021, 13:45 | |
|
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 08.04.2021, 13:45 | |
|
EF, конечно, Вам освоить придется. Раз требуют. И работать по местным лекалам тоже придется. Будете разрабатывать велосипеды с квадратными колесами - лишь бы платили деньги.
Но если Вы хотите расти до настоящего профессионала, то все инструменты будете выбирать оптимально и также оптимально их использовать.
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,404
|
|
| 08.04.2021, 13:46 | |
|
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 08.04.2021, 13:47 | ||
|
Не по теме: Учитывая стремительный рост IT, в который приходят бывшие кухарки и дворники, а также прыткие и гонористые неучи, то да, согласен :)
0
|
||
|
3 / 3 / 1
Регистрация: 18.02.2021
Сообщений: 70
|
|
| 08.04.2021, 13:53 [ТС] | |
|
MsGuns, Usaga, раз уж оно надо, мне проще идти программировать с подходом "вау как классно", чем "опять надо мучить это говно". Касательно неучей, по мне, они в основном оседают во фронте или php и редко доростают до чего-то такого, где их решение имело бы вес во всей индустрии. ИМХО, могу быть неправ.
0
|
|
| 08.04.2021, 13:53 | |
|
Помогаю со студенческими работами здесь
20
Нужно ли именовать поля таблиц уникальными именами во всем проекте Аксесс 2003?(и затем, в MySQL)? Сделать данные в массиве уникальными Сделать ключи в словаре уникальными Как сделать модель с уникальными зависимостями? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|