使用服务从Silverlight应用程序消费数据库表

问题描述

| 为什么这不起作用:
[OperationContract]
public List<Category> DoWork()
{
    using(var db= new PDataContext())
    {
        return db.Categories.Select(x => x).ToList();
    }
}
我收到CommunicationException错误:未找到。 但这确实是:
[OperationContract]
public List<myCategory> DoWork()
{
    using(var db= new PDataContext())
    {
        return  db.Categories.Select(x => new myCategory
                {
                  CategoryID = x.CategoryID,Name = x.Name,Visible = x.Visible,ParentID = x.ParentID
                 }).ToList(); 
    }
 }

 public class myCategory
 {
     public int CategoryID { get; set; }
     public string Name { get; set; }
     public bool Visible { get; set; }
     public int ParentID { get; set; }
 }
我无法理解LINQ2sql类别类与我在上面的示例中编写的代码有何不同。     

解决方法

        我唯一能想到的是,您使用Linq2SQL类在服务中引起了与序列化有关的异常。您能否进一步解释一下您所拥有的关系类型? 我认为这是类似的问题,请参见此博客。     ,        这是行不通的,因为无法通过线路对Category数据对象进行序列化。 您可以在此处找到更详细的讨论