2010-08-16 7 views
1

Я хочу добавить новый класс службы домена в vs2010. Я выбираю контекст базы данных сущности в диалоговом окне «Добавить новый класс службы домена», но он не показывает мне доступные объекты. Если я нажимаю «ок» VS2010 дает мне следующее сообщение об ошибке:DomainService работает только с файлом EDMX?

--------------------------- 
Microsoft Visual Studio 
--------------------------- 
Value cannot be null. 

Parameter name: ssdlPath 
--------------------------- 
OK 
--------------------------- 

Причина этого заключается в том, что у меня нет файла EDMX (я пробовал с файлом EDMX и он работал). Вместо этого у меня есть отдельный файл csdl, msl и ssdl. Это связано с тем, что я хочу поддерживать несколько баз данных.

Как я могу использовать класс LinqToEntitiesDomainService с моим контекстом данных? Объекты сущности и контекст данных генерируются с помощью шаблона POCO. Если добавить класс домена Serive вручную (не с помощью службы Wizzard домена) Я получаю ошибку компиляции времени, который говорит, что в принципе то же самое:

MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Ria.Client.targets(303,5): error : Value cannot be null. 
MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Ria.Client.targets(303,5): error : Parameter name: ssdlPath 

Может кто-нибудь помочь?

+0

Кто-нибудь использовал LinqToEntitiesDomainService без EDMX файла? Я имею в виду, что генерация кода клиента для silverlight кажется неработоспособной. Как генерация клиента обнаруживает ssdlPath? – Jeldrik

+0

Любой шанс, что у вас это получилось? У меня такая же проблема, и я в тупике. –

+0

К сожалению, нет. Я закончил с использованием класса DomainService (insted из LinqToEntitiesDomainService calss) и реализовал собственные методы. – Jeldrik

ответ

1

Выберите YorDoaminContainer.csdl, файл YorDoaminContainer.ssdl и файл YorDoaminContainer.msl, а затем В разделе «Свойства» установите «Построить действие для встроенного ресурса». И затем убедитесь, что у вас есть правильная строка подключения для этих трех ресурсов.

, например:

<connectionStrings> 
    <add name="DomainModel" 
     connectionString="metadata=res://*/NameSpace.DomainController.csdl|res://*/NameSpace.DomainController.ssdl|res://*/NameSpace.DomainController.msl; 
     provider=System.Data.SqlClient;provider connection string='Data Source=localhost; 
     Initial Catalog=DB;Integrated Security=True;Connection Timeout=60; 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 
+0

Если у вас есть один из трех, вам нужно убедиться, что все они встроены или вы увидите ArgumentNullException csdlPath, ssdlPath или mslPath соответственно. –

+0

Спасибо за ответ. У меня есть действие сборки, установленное в «Embedded Resource» для всех трех файлов. Роль файла играет роль? Имена файлов выглядят следующим образом: DomainController.csdl, DomainController.msl и DomainController.Oracle.ssdl. Я поместил их в подпапку под названием «Модель» – Jeldrik

+0

Jeho, я обновил ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^