WPF designer не загружается при привязке источника данных из entity framework
-
19-08-2019 - |
Вопрос
Редактировать: Я отправил отчет об ошибке, и Microsoft подтвердила, что это ошибка.В настоящее время нет расчетного времени на то, когда это будет исправлено.
Отчет об ошибке: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx ?Идентификатор обратной связи=386982
Официальный Отзыв: http://social.msdn.microsoft.com/Forums/en-US/vswpfdesigner/thread/ca3cac55-c1de-4e65-9543-e95484ad78c5/
У меня есть решение, структурированное следующим образом.
- Проект Entity framework project
- Проект по доступу к данным
- Проект приложения WPF
Приложение WPF вызывает методы в проекте доступа к данным, который получает свои данные из проекта entity framework и привязывает их к XAML.
например ,
<UserControl.Resources>
<ObjectDataProvider x:Key="tokens"
ObjectType="{x:Type ctl:MerchantNetworkController}"
MethodName="ListMerchantNetworkTokens" />
</UserControl.Resources>
Проблема, с которой я сталкиваюсь, заключается в том, что конструктор VS 2008 не загружается, когда я вызываю функции из проекта доступа к данным, однако я могу скомпилировать и запустить решение нормально.
Когда я создаю функцию в коде, лежащем в основе XAML, и использую ее вместо проекта доступа к данным, она работает нормально, и дизайнер действительно загружается.Проблема возникает только тогда, когда я делаю вызов проекту доступа к данным.
Сообщение об ошибке, которое я получаю от дизайнера, является
"The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid"
У меня есть следующая строка подключения в App.config проекта WPF и проекта доступа к данным
<add name="Entities"
connectionString="metadata=C:\EFModel\Model.csdl|C:\EFModel\Model.ssdl|C:\EFModel\Model.msl;
provider=System.Data.SqlClient;
provider connection string='Data Source=localhost;Initial Catalog=database;Persist Security Info=True;User ID=username;Password=password;MultipleActiveResultSets=True'"
providerName="System.Data.EntityClient" />
Я использую VS 2008 sp1, .NET 3.5 sp1, 32-разрядную Vista
Решение
Да, это отстой.Мне уже приходилось сталкиваться с этим раньше.Лучшее, что вы можете сделать, это заставить вашу функцию контроллера возвращать поддельные данные в режиме конструктора.