【发布时间】:2017-08-10 11:41:09
【问题描述】:
我有一个 WCF 服务,它应该返回一个带有任务列表的用户。 这是我的操作代码:
//in the Interface IService
[OperationContract]
User getUser();
//in the Service
public User getNewUser()
{
return new User();
}
这里是我的课程(为了简短起见,它们位于不同的文件中):
[Table("user", Schema = "public")]
public class User: ModelBase
{
public string Name{ get; set; }
public virtual ICollection<Task> TaskList { get; set; }
}
[Table("task", Schema = "public")]
public class Task: ModelBase
{
public DateTime Date { get; set; }
public string Description { get; set; }
}
我的问题:当我调用 WCF 方法时,使用虚拟 ICollection 会出现错误(在这种情况下是 getNewUser,其中是否有内容无关紧要)。如果 ICollection 使 WCF 操作正常工作,则删除“虚拟”,但是我从数据库中获取的用户列表中没有任务。解决这个问题的正确方法是什么?
【问题讨论】:
-
"给我一个错误" 错误是...?
-
它没有错误代码,它在收到消息时说错误,连接被主机关闭。经过大量谷歌后,我发现问题是由 -virtual- 引起的,但这是实体框架所需要的。
-
不,
virtual是 EF不需要的。所谓的延迟加载需要它。您可以随时将其删除并使用预先加载 (Include)。 -
我是 EF 新手 :( 有没有一个简单的例子?
-
我明白了。这是 IMO 一个很好的帖子,可以提供一些启示:) - Loading Related Entities with Entity Framework - A Beginner's Primer
标签: c# entity-framework wcf