|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Как можно загрузить в edmx таблицу у которой нет праймери кей. а то пишет вот что <!--Errors Found During Generation: warning 6013: The table/view 'ALTNAMES' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment it. <EntityType Name="ALTNAMES"> <Property Name="OLDCODE" Type="nvarchar" MaxLength="255" /> <Property Name="NEWCODE" Type="nvarchar" MaxLength="255" /> <Property Name="LEVEL" Type="nvarchar" MaxLength="255" /> </EntityType>--> ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2010, 18:08 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
правильно пишет. таблица без праймари ключа не правильна. и в его понимании и в идеологии реляционных бд. зачем она должна быть без пк? пк может быть родным - редко видел, может быть синтетическим. но зачем же совсем без него? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2010, 19:22 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Возможный извращённый вариант - добавьте PK-поле в схему руками и выставьте StoreGeneratedPattern="Computed" у него. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2010, 19:30 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
SculptoRправильно пишет. таблица без праймари ключа не правильна. и в его понимании и в идеологии реляционных бд. зачем она должна быть без пк? пк может быть родным - редко видел, может быть синтетическим. но зачем же совсем без него? В иделогии ER нигде не сказано, что PK обязателен. Более того, он даже вреден в плане производительности для таблиц с небольшим объемом данных. Не нужно под убогость ORM, подводить какую-то теоретическую базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2010, 11:50 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
SilverlightSculptoRправильно пишет. таблица без праймари ключа не правильна. и в его понимании и в идеологии реляционных бд. зачем она должна быть без пк? пк может быть родным - редко видел, может быть синтетическим. но зачем же совсем без него? В иделогии ER нигде не сказано, что PK обязателен. Более того, он даже вреден в плане производительности для таблиц с небольшим объемом данных. Не нужно под убогость ORM, подводить какую-то теоретическую базу. В добрый путь... всем знатокам теоретической базы :) Вызывает интерес, каким образом будут разруливаться UD операции при отсутствии уникального индекса? Хотя... стоит признать, ну не то чтоб убогость... зело умен EF, что порою бесит... и, казалось бы, вполне безобидные вещи невозможно сделать из-за "недюжего интеллекта" этой ORM, например - описанный случай и ряд других... Ну не @е дело провидцев от микрософт закрывать часть возможностей из-за возможности каких-то потенциальных коллизий при сохраненении... чай не лохи на кнопки давят мыж все понимем, ну просто нам так надо... мы все сами разрулим :) А Вы наверное на хибер намекаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2010, 15:31 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Уникальность можно поддерживать и без индексов. Я на все ОRM намекаю. Все они из одной бочки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2010, 16:55 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Сева, твою любимую книгу на русском издали: ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2010, 10:34 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Я их в английском варианте уже давно читал. Быстрее всего - это уже мукулатура. Вчера выложен Preview 4.0 c существенными изменениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2010, 11:01 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
lans, Не прошло и восьми лет с момента первоначального обсуждения :) А воз и ныне там. У меня с таблицами проблем нет - все честно имеют PK. Но как быть с представлениями? MS SQL Server, насколько я понимаю, не позволяет объявлять ПК в представлениях. Попытка обновить схему из БД неизменно приводит к следующему (исключению представления из модели): Код: html 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2018, 18:28 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Курдль, Нужно говорить про версию используемого EF. EF это entity framework. А не views framework )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2018, 21:03 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
hVosttКурдль, Нужно говорить про версию используемого EF. EF это entity framework. А не views framework )) Версия 6.2.0 entity - это "сущность" и что? Почему нельзя дать разработчику возможность указать ПК постфактум? Точнее возможность такая есть - ручное вмешательство в edmx, после чего он больше не сможет автоматически апдэйтиться из БД Ладно, я упаковал запрос в процедурину, потерял возможность видеть представление на схеме и выстраивать взаимосвязи с таблицами и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2018, 21:44 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Курдльentity - это "сущность" и что? То, что EF это фреймворк для работы с сущностями БД. А сущность характеризуется наличием идентификатора (уникальный ключ). КурдльПочему нельзя дать разработчику возможность указать ПК постфактум? Без проблем, указывайте. КурдльТочнее возможность такая есть - ручное вмешательство в edmx, после чего он больше не сможет автоматически апдэйтиться из БД Потому что апдейт edmx из БД подходит только для проектов примитивного уровня или лабораторных работ. Просто в силу ограниченности возможностей, это работает только когда вас полностью устраивает генерация. КурдльЛадно, я упаковал запрос в процедурину, потерял возможность видеть представление на схеме и выстраивать взаимосвязи с таблицами и т.п. Многие люди реально теряются при ответе на вопрос: вам шашечки, или ехать? И в итоге рождаются какие-нибудь костыли. И виноват какой-нибудь фреймворк :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 01:07 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
hVostt, Вы во многом правы. Это, конечно же, моя проблема, что мне не нравится некоторый функционал EF. На мой взгляд не должно быть наполовину беременных решений. Либо DB First, Code First. Если я выбрал первое - не должен копаться в кишках кода каждый раз, как меняю модель данных. Так что Вы предлагаете? Оставить представление и дальше edmx править только вручную? А может быть создать индексированное представление? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 11:03 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Курдль, Не понял проблему. Выше он верно написал, что сущность это таблица. Зачем вам вьюха? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 12:55 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Petro123, Вот чего Вы все надо мною прикалываетесь? Сущность - это элемент логической модели. Таблица - элемент физической реализации. Зачем тогда всё многообразие объектов БД? Зачем вьюхи, процедуры, функции, массивы и коллекции?.. Мне для работы нужны не таблицы или сущности и т.п. Мне нужны НАБОРЫ ДАННЫХ. В частном случае - результат рекурсивного запроса CTE. EF умеет строить рекурсивные запросы непосредственно к таблицам? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 15:42 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
КурдльВот чего Вы все надо мною прикалываетесь? совсем нет. КурдльСущность - это элемент логической модели. Таблица - элемент физической реализации. Да. Тут противоречие сразу появляется, т.к. моделирование это приближение к реальности. Объектые сущности надо сохранять где объектов и наследования нету - РСУБД. КурдльМне для работы нужны не таблицы или сущности и т.п. Мне нужны НАБОРЫ ДАННЫХ. Значит если не нужны классы и коллекции, то ОРМ и EF не нужен. Нужно как в дельфи - датасет. КурдльEF умеет строить рекурсивные запросы непосредственно к таблицам? Зачем? Если вам ОРМ не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 16:03 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Курдль, У меня есть проект где нет ОРМ и нормально работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 16:04 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
КурдльЕсли я выбрал первое - не должен копаться в кишках кода каждый раз, как меняю модель данных. Вообще-то DB First по сути, это когда у вас есть уже готовая БД и вам нужно для неё быстро сделать работающую систему. Но некоторые люди по незнанию выбирают такой подход в длительной разработке, и это big mistake. Комплекс изменений, который вы сделаете в БД очень легко может стать unresolvable , так как EF не обладает искусственным интеллектом, чтобы понять, что на самом деле произошло и как это сопоставить с моделью. Есть лишь два единственных адекватных способа вести длительную разработку ПО и модели данных с использованием EF: Model First и Code First. КурдльТак что Вы предлагаете? Оставить представление и дальше edmx править только вручную? Предлагаю перейти на Model First или Code First. Если это не подходит в силу привычек (очень сильно хочется DDL, до коликах в животе), тогда вам нужен другой ORM и полностью ручное сопровождение. Например, Dapper или LiteDb. КурдльА может быть создать индексированное представление? Индексация тут не при чём. КурдльМне для работы нужны не таблицы или сущности и т.п. Мне нужны НАБОРЫ ДАННЫХ. Ну и как EF, который работает с сущностями должен определять ваши «наборы данных», как их сопровождать и как с ними работать, как отслеживать изменения и как работать с кешем? Ответ -- никак. КурдльВ частном случае - результат рекурсивного запроса CTE. EF умеет строить рекурсивные запросы непосредственно к таблицам? В Code First это делается, например, путём определения класса-сущности для вьюхи и ручной миграцией с SQL. По крайне мере это работает в любых условиях и поведение ожидаемое. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 19:29 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
hVosttВообще-то DB First по сути, это когда у вас есть уже готовая БД и вам нужно для неё быстро сделать работающую систему. Но некоторые люди по незнанию выбирают такой подход в длительной разработке, и это big mistake. Комплекс изменений, который вы сделаете в БД очень легко может стать unresolvable нет. Это делают когда БД есть и ее масштаб - предприятие. Генериррвать не дадут. Но у нас же не про рассогласование вопрос. А о вьюхах и зачем они в ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 21:18 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Petro123Это делают когда БД есть и ее масштаб - предприятие. Генериррвать не дадут. Чего это ты мне рассказываешь :) У нас проекты масштабов предприятия федерального уровня, ни в одном из них нет БД, которую пилит своими руками в DDL какой-то кадр всё управляется ПО, никто вообще не имеет никаких прав лезть в БД руками, только на чтение и это прекрасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 23:18 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Petro123А о вьюхах и зачем они в ОРМ. CTE ты без вьюхи в EF не сделаешь, увы не считая custom sql, но это уже за гранью ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2018, 23:19 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
hVostt, Ну и у нас федерального. Только я не говорю что у нас лучше других)). У вас проекты другие. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2018, 07:21 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
hVosttPetro123А о вьюхах и зачем они в ОРМ. CTE ты без вьюхи в EF не сделаешь, увы не считая custom sql, но это уже за гранью А зачем это делать? И как ты с ОРМ поменяешь базу при этом? Ведь одна из основных фич ОРМ это смена базы. Т.е. довод про CTE от лукавого. Это не нужно что при dbfirst, что при codefirst. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2018, 07:25 |
|
EF edmx без праймери кей
|
|||
---|---|---|---|
#18+
Petro123Ведь одна из основных фич ОРМ это смена базы. Т.е. довод про CTE от лукавого. Ну как, поправить зависимый код. Ничего идеального не существует ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2018, 07:43 |
|
|
start [/forum/topic.php?fid=17&startmsg=36553734&tid=1349172]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 153ms |
0 / 0 |