Использование таблицы БД из приложения Silverlight с помощью службы - PullRequest
1 голос
/ 18 июня 2011

Почему это не работает:

[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 каким-либо образом отличается от кода, который я написал в приведенном выше примере.

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Единственное, что я могу подумать, это то, что вы вызываете исключение, касающееся сериализации, в вашем сервисе с использованием класса Linq2SQL.Не могли бы вы объяснить немного больше о том, какие у вас отношения?

Смотрите этот блог, и я думаю, что это похожая проблема Возвращение LINQ to SQL Entities

0 голосов
/ 18 июня 2011

Это не работает, поскольку объект данных категории нельзя сериализовать по проводам.

Более подробное обсуждение можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...