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

本文关键字:数据库 应用程序 Silverlight 服务 | 更新日期: 2023-09-27 17:59:22

为什么这不起作用:

[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 Category类与我在上面的示例中编写的代码有什么不同。

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

我唯一能想到的是,您使用Linq2SQL类在服务中引发了一个与序列化有关的异常。你能再解释一下你有什么类型的关系吗?

请参阅此博客,了解我认为类似的问题将LINQ返回到SQL实体

这不起作用,因为Category数据对象无法通过连线进行序列化。

您可以在这里找到更详细的讨论