C# 在WCF中使用EntityFramework加载子实体
以下代码是一个WCF项目。 我正在加载EntityFramekwork(v.6)表的子数据。 代码如下所示 这是存储库中的代码C# 在WCF中使用EntityFramework加载子实体,c#,entity-framework,wcf,C#,Entity Framework,Wcf,以下代码是一个WCF项目。 我正在加载EntityFramekwork(v.6)表的子数据。 代码如下所示 这是存储库中的代码 public IEnumerable<Messages> GetMessagesList() { return context.Messages.Include(e=>e.Users).Include(e=>e.Codes).ToList(); } public IEnumerable GetMessagesList() { 返回con
public IEnumerable<Messages> GetMessagesList()
{
return context.Messages.Include(e=>e.Users).Include(e=>e.Codes).ToList();
}
public IEnumerable GetMessagesList()
{
返回context.Messages.Include(e=>e.Users).Include(e=>e.code.ToList();
}
这是服务中的代码:
public IEnumerable<Messages> GetMessagesList()
{
var res = messagesRepository.GetMessagesList();
return res;
}
public IEnumerable GetMessagesList()
{
var res=messagesRepository.GetMessagesList();
返回res;
}
无论是否使用include方法,它都会在调试时返回数据
但问题是,当我添加include方法来加载客户端中的相关子实体时。当我只加载消息实体时,它是正常的
接收对的HTTP响应时出错
. 这可能是由于
未使用HTTP协议的服务端点绑定。这也可能
可能是由于服务器中止了HTTP请求上下文
(可能是由于服务关闭)。有关更多信息,请参阅服务器日志
细节
内部异常消息:
基础连接已关闭:上发生意外错误
接受
使用WCF测试客户端进行测试时:
这里的实际问题是,如何将已加载子项的Messages实体传递到客户端而不获取错误。错误非常普遍,我无法理解实际问题。我向模型类添加了[DataContract(IsReference=true)],子表中的所有相关数据都已加载。这就是本例中的解决方案。看起来您正试图从服务返回实体对象。这是不可能的,因为默认情况下实体对象不能序列化。因此,您不能直接从服务返回。您可以将实体映射到DTO,然后返回它。检查