DomainService仅适用于EDMX文件?

时间:2010-08-16 07:30:34

标签: silverlight entity-framework wcf-ria-services edmx

我想在vs2010中添加一个新的域服务类。我在“添加新域服务类”对话框中选择我的实体框架数据库上下文,但它不会向我显示可用的实体。如果我点击“确定”,VS2010会给我以下错误信息:

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

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

原因是,我没有EDMX文件(我尝试使用EDMX文件并且它有效)。相反,我有一个单独的csdl,msl和ssdl文件。这是因为我想支持多个数据库。

如何将LinqToEntitiesDomainService类与我的数据上下文一起使用?使用POCO模板生成实体对象和数据上下文。如果我手动添加Domain 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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

选择YorDoaminContainer.csdl,YorDoaminContainer.ssdl文件和YorDoaminContainer.msl文件然后 在Properties中,将Build Action设置为Embedded Resource。 然后确保你有三个资源的正确连接字符串。

例如:

<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>