2013-11-07 2 views
1

У меня есть простая работа WCF, которая должна возвращать данные из базы данных Northwind с использованием LINQ to SQL. Я могу назвать сервис и вернуть результаты просто отлично. Когда я немного изменил свой класс, я получаю правильное количество строк, но все они пустые {}.JsonConvert Возвращает произвольные пустые объекты [{} {} {} {}]

Это класс я выбор в с моим запросом LINQ:

[DataContract] 
public class ProductView { 
    public int ProductID { get; set; } 
    public string ProductName { get; set; } 
    public short? UnitsInStock { get; set; } 
    public ProductView() { } 
    public ProductView(Product item) { 
     ProductID = item.ProductID; 
     ProductName = item.ProductName; 
     UnitsInStock = item.UnitsInStock; 
    } 
} 

Это мой LINQ запрос:

using (NorthwindDataContext context = new NorthwindDataContext("BLAH")) { 
    var products = from p in context.Products select new ProductView (p); 
    return JsonConvert.SerializeObject(products); 
} 

Chrome Developer показывает результаты возвращаются как «[{}, { }, {}, {}] "однако, если я проверяю объект во время отладки и до его сериализации, я могу видеть все объекты ProductView и их относительные свойства.

Я знаю, что я пропустил что-то простое, я просто не могу, чтобы жизнь меня определяла ... Любая помощь приветствуется!

ответ

2

Я предполагаю, что добавив [DataContract] к вашему классу, вы сообщаете json конвертеру, что он должен учитывать только свойства с атрибутом [DataMember]. Поскольку ни один из ваших свойств не имеет этого атрибута, ни один из них не сериализуется.

Либо добавьте атрибуты DataMember в свои свойства, либо удалите атрибут DataContract из вашего класса.

+0

Именно так, спасибо вам большое! –

Смежные вопросы