我有一个简单的WCF服务运行,它应该使用LINQ to SQL从Northwind数据库返回数据。我可以调用该服务并返回结果。当我调整了我的课程时,我得到了正确的行数,但这些都是空白的{}。
这是我使用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对象及其相关属性
我知道我错过了一些简单的东西,我只是因为我的生活无法弄清楚... 任何帮助表示赞赏!
答案 0 :(得分:2)
我猜测通过向您的班级添加[DataContract]
,您告诉json转换器它应该只关注具有[DataMember]
属性的属性。由于您的所有属性都没有该属性,因此没有一个属性被序列化。
将DataMember属性添加到属性中,或从类中删除DataContract属性。