我尝试从服务中获取列表:
static void Main(string[] args)
{
MyClient proxy = new MyClient();
List<X> l = proxy.Func(1).ToList();
}
X是来自实体框架项目的DLL的类。
我的服务功能如下:
public List<X> Func(int NUM)
{
ProjectContext MyContext = new ProjectContext();
s = MyContext.X.ToList();
return s;
}
我的上下文定义如下:
public class ProjectContext : DbContext
{
public ProjectContext ()
: base("name=ApplicationServices")
{
this.Configuration.ProxyCreationEnabled=false;
this.Configuration.LazyLoadingEnabled = false;
}
public DbSet<XX> X{ get; set; }
}
我收到错误:
接收到XXX的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。
答案 0 :(得分:3)
异常可能是由于循环引用。使用IgnoreDataMember
属性标记实体中的导航属性,以便它们不参与序列化。
答案 1 :(得分:1)
我习惯和你一样,并且犯了同样的错误。 我决定通过创建一个数据合同来像这样声明类X.
[DataContract]
public class StudentX
{ [DataMember]
public string studentId;
[DataMember]
public string studentName;
[DataMember]
public string studentBirthday;
public Studentx(string Id, string Name, string Birthday)
{
// TODO: Complete member initialization
studentId= Id;
studentName = Name;
studentBirthday= Birthday;
}
}
我认为你得到那个错误的原因是因为客户端不理解对象X,所以List也是如此。
此致