1

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

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

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

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

如何在我的数据上下文中使用类 LinqToEntitiesDomainService?实体对象和数据上下文是使用 POCO 模板生成的。如果我手动添加域服务类(不使用域服务向导),我会得到一个编译时错误,它说的基本相同:

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

任何人都可以帮忙吗?

4

1 回答 1

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>
于 2010-08-23T06:32:29.880 回答