【发布时间】:2014-04-08 06:38:49
【问题描述】:
编辑:我不知道你们是怎么做到的,但是这个问题确实是重复的。见上文。
目前我手头有一个 WCF 服务,它公开了一些基本操作:
public interface IUniService
{
[OperationContract]
bool IsUser(string userName);
[OperationContract]
User GetUserByUsername(string userName);
}
我还有一个实体框架数据库正在运行。 下面是一段访问服务器的代码。
public bool IsUser(string userName)
{
using (UniDBEntities db = new UniDBEntities())
{
User a = new User();
var user = db.Users.Where(p => p.UserName == userName).ToList();
return (user.Count() != 0);
}
}
但我的问题是,我想通过 WCF 服务公开一些当前在我的实体框架中的类。当我写一个函数时:
User GetUserById(int id)
当我返回结果时,我的客户似乎不知道 User 类是什么。如何将我的实体公开为数据成员?
【问题讨论】:
-
请,请不要这样做。 EF 类从不打算由 WCF 使用(循环属性会立即破坏序列化程序,并且它们有一大堆您不想处理的垃圾)。见:stackoverflow.com/questions/22674692/…
-
那么您需要一些代理类/DTO 吗?嗯,那是……尴尬。
-
无论如何使用
return db.Users.Any(p => p.UserName == userName)而不是您的查询。它将生成最高效的 SQL。 -
对于编辑来说,我们是魔术师 :) 实际上我们只是阅读并回答了很多问题,并且记住了足够多的内容,我们可以发现重复!如果您指的是我标记为可能重复的链接,我实际上是在几周前写了答案:),并在阅读此问题时记住了它。
标签: c# wcf entity-framework