我正在开发一个asp.net应用程序。我有一个域程序集(主要包含命令和查询代码),一个Domain.Contract程序集(主要包含域目标),一个存储库(由域调用)和网站。
对于某些特定的后台需求,我想创建一个Lightswitch应用程序。我想使用我当前的域作为数据源。我添加了一个WCF Ria Service类库,并在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中。添加我对Server项目的引用不会修复错误。
感谢。
答案 0 :(得分:1)
在解决方案资源管理器窗口中,选择ServerGenerated程序集,然后单击“显示所有文件”按钮。这将显示所有隐藏文件夹 - 包括为WCF Ria生成的客户端代码。
如果没有生成代码,这意味着服务实现出现问题(通常会出现编译错误)或服务出现其他问题 - 比如缺少[EnableClientAccess]属性(我知道事实)没有此属性的服务不会生成客户端代码。)
要检查的其他事项是在主机项目中包含服务器端ria程序集+在.config文件中为WCF ria配置正确的配置(请参阅google)。
答案 1 :(得分:0)
在解决方案资源管理器窗口中,选择项目并单击"显示所有文件"按钮并选择"文件视图" (不是逻辑视图)。
然后添加对projet" ServerGenerated"的引用。 (不是服务器项目)