0

我尝试从这样的服务中获取列表:

   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 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

4

2 回答 2

3

异常可能是由于循环引用。用属性标记实体中的导航属性,IgnoreDataMember这样它们就不会参与序列化。

于 2012-10-22T14:35:43.570 回答
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,列表也是如此。

问候

于 2012-10-22T07:00:46.160 回答