Несоответствие результата платформы объекта для базы данных просматривает

Мне создали одно определенное представление в моем DB (присоединяется приблизительно к 5-6 таблицам с левым соединением).This, представление добавляется к моему edmx (платформа объекта 1.0). Недавно я заметил, что одна из записей столбца, полученных с помощью edmx (linq к объектам и затем ToList ()), была дублирована многократно, хотя в базе данных просматривают, они отличались

Column-N (Expected result/ result from DB view)
---------
data1
data2
data3
data4
data5

Column-N(Actual result generated by entity framework)
---------
data1
data1
data1
data1
data1

Я разжег своего профилировщика SQL, получил запрос, который был отправлен моим приложением в SQL Server, выполнил его, и это возвратило меня ожидаемый результат.

MSDN имеет подобное сообщение здесь и здесь но модератор не уточнил то, как решить эту проблему. Мой ключ, оказывается, GUID

Первопричина Вы указали, что я думаю, корректна, проблема находится на стороне приложения отображение EF, поскольку EF имеет различные правила отображения объекта с базой данных. когда результаты запроса будут возвращены из базы данных, EF сделает отображение на памяти приложения согласно ее собственной разработанной логике.

Важно принять их во внимание логика когда Вы desingn Ваш запрос представления в Вашей стороне базы данных. Я думаю, что необходимо сделать некоторую корректировку на запросе представления.

Я не уверен, отсортировали ли Вы проблему, если не, обеспечьте структуру базы данных, связанную с этой проблемой и запросом представления, который Вы записали.

Спасибо Binze

Кто-то встретился с подобной проблемой прежде?

16
задан ram 24 June 2010 в 14:52
поделиться

1 ответ

Проблема на самом деле с ключом. Вы должны: а) иметь уникальный идентификатор для каждой строки в представлении. и б) сопоставьте этот ключ соответствующим образом в edmx. В противном случае, как указано в вашей цитате, логика сопоставления будет видеть каждую последующую строку и полагать, что она может использовать тот же экземпляр объекта, который она вернула до

18
ответ дан 30 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: