Linq到WCF的实体

5 c# linq asp.net wcf linq-to-entities

我将所有实体放在我的edmx文件中的单独项目中,并使用WCF服务将它们暴露给我的客户端应用程序.

这意味着我不必为我的客户端应用程序提供指向包含edmx文件的项目的直接链接.这将是不好的,因为它将对象用于查询数据库.

但是只能从我的客户端应用程序访问我的WCF服务使用的实体.例如,因为我的服务中包含以下代码:

public MyClass GetMyClass()
{
     return new MyClass();
}
Run Code Online (Sandbox Code Playgroud)

..我可以在我的客户端应用程序中使用访问MyClass,例如:

myServiceInstance.MyClass cls = new  myServiceInstance.MyClass()
Run Code Online (Sandbox Code Playgroud)

如果我的edmx文件中有一个名为MyClass2的实体,我想在我的客户端应用程序中使用该怎么办!如何实现它而不给我的客户端直接链接到我的edmx文件项目或在我的服务层中创建一个返回MyClass2的无用方法

其他人在做什么?

非常感谢

Mar*_*ell 2

如果 WCF 服务不使用它,您想要它做什么?WCF 服务(本身)纯粹用于数据传输 - 元数据的“mex”方法不共享代码,因此您的 MyClass2 将无能为力。如果需要,您可以在客户端使用程序集共享,但在这种情况下我真的不建议这样做;客户端的 EF 对象一团糟...(而且它无法在 Silverlight、Client Profile、Compact Framework 等轻量级框架上工作)

另一个选择是ADO.NET 数据服务;这在 WCF 上工作,但为您提供了比常规 WCF 方法更适合 LINQ 的 API - 并且您的模型公开的任何域对象都应该在客户端数据上下文上可用。