将 Lightswitch 与我自己的域对象一起使用:缺少引用

发布于 2024-11-19 17:54:25 字数 675 浏览 3 评论 0原文

我正在开发一个 ASP.NET 应用程序。我有一个域程序集(主要包含命令和查询代码)、一个 Domain.Contract 程序集(主要包含域对象)、一个存储库(由域调用)和网站。

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

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

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

具体错误在这一行: 全局::Domain.Contract.MyObject 结果=新的全局::Domain.Contract.MyObject(); 这是我的域对象(在我的 Domain.Contract 程序集中创建)。

因此,看来我唯一需要做的就是将 do Domain.contract 引用添加到 ServerGenelated 项目中。

但它没有出现在 Visual Studio 中。添加我对服务器项目的引用并不能修复该错误。

谢谢。

I'm working on an asp.net application. I have a Domain assembly (containing mostly command and queries code), a Domain.Contract assembly ( containing mostly the domain objets), a Repository (called by the Domain) and the Web site.

For some specific backoffice needs, I want to create a Lightswitch application. I want to use my current domain as a datasource. I added a WCF Ria Service class Library, and in the RiaService.Web project, added a class based on DomainService, with one query method. Nothing more (no entities, since they are in my Domain.Contract assembly)

Using help from here (thanks Michael W), I was able to add the datasource, and to get my domain object recognized as an entity in light switch.

But, I now have a compile error : 'The type or namespace name 'MyDomain' could not be found in the global namespace (are you missing an assembly reference?)' in the project ServerGenerated.

The specific error is on this line :
global::Domain.Contract.MyObject result = new global::Domain.Contract.MyObject();
which is on of my domain objects (created in my Domain.Contract assembly).

So, it seems that the only thing I need to do is to add a reference do Domain.contract to the ServerGenerated project.

But it does not appear in Visual Studio. Adding my reference to the Server project does not fix the error.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

她比我温柔 2024-11-26 17:54:25

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

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

其他需要检查的事情是在您的主机项目中包含服务器端 ria 程序集 + 在 .config 文件中为 WCF ria 提供正确的配置(询问 google)。

In your solution explorer windows, select the ServerGenerated assembly and click on the "show all files" button. This will show all hidden folders - including the generated client code for WCF Ria.

If there's no generated code this means there's either something wrong with the service implementation (typically you'd get a compilation error) or there's something else wrong with the service - like a missing [EnableClientAccess] attribute (I know for a fact that a service without this attribute does not generate client code).

Other things to check for is to include the server-side ria assembly in your host project + have a correct configuration for WCF ria in the .config file (ask google).

〃温暖了心ぐ 2024-11-26 17:54:25

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

然后添加对项目“ServerGenelated”的引用(不是服务器项目)

In your solution explorer windows, select the project and click on the "show all files" button and also select the "file view" (not the logical view).

Then add the reference to the projet "ServerGenerated" (not the server project)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文