1

我正在研究一个asp.net应用程序。我有一个域程序集(主要包含命令和查询代码),一个Domain.Contract程序集(主要包含域对象),一个存储库(由域调用)和网站。使用Lightswitch和我自己的域对象:缺少参考

对于某些特定的后台需求,我想创建一个Lightswitch应用程序。我想用我当前的域名作为数据源。我添加了一个WCF Ria服务类库,并在RiaService.Web项目中添加了一个基于DomainService的类,并使用一种查询方法。没有更多(没有实体,因为它们在我的Domain.Contract程序集中)

使用此处的帮助(感谢Michael W),我能够添加数据源,并将我的域对象识别为实体开关。

但是,我现在有一个编译错误:在项目ServerGenerated的全局命名空间中找不到类型或命名空间名称'MyDomain'(缺少程序集引用?)''。

具体的错误是在这一行: global :: Domain.Contract.MyObject result = new global :: Domain.Contract.MyObject(); 这是我的域对象(在我的Domain.Contract程序集中创建的)。

所以,我唯一需要做的就是添加一个引用做Domain.contract到ServerGenerated项目。

但它并未出现在Visual Studio中。将我对“服务器”项目的引用添加不能解决该错误。

谢谢。

+1

为什么投票? – Maciek

回答

1

在您的解决方案资源管理器窗口中,选择ServerGenerated程序集,然后单击“显示所有文件”按钮。这将显示所有隐藏文件夹 - 包括为WCF Ria生成的客户端代码。

如果没有生成的代码,这意味着服务实现可能有问题(通常会出现编译错误),或者服务有其他问题 - 比如缺少[EnableClientAccess]属性(我知道对于事实是没有此属性的服务不会生成客户端代码)。

要检查的其他事情是将服务器端ria组件包含在您的主机项目中+在.config文件中提供正确的WCF ria配置(请求google)。

+0

非常感谢!我只希望ServerGenerated项目不会重新生成很多... – Guillaume

0

在您的解决方案资源管理器窗口中,选择项目,然后单击“显示所有文件”按钮并选择“文件视图”(不是逻辑视图)。

然后添加引用到projet“ServerGenerated”(不是服务器项目)