GridView找不到定义类型的字段,但是匿名类型?

时间:2011-04-01 03:40:13

标签: c# .net linq entity-framework gridview

我正在使用LINQ从数据库中查询数据,然后将其绑定到GridView。当我使用匿名类型时,一切正常,但现在我想重用数据(以后的过滤器),所以我创建了一个类来映射匿名类型,这里是:

public class DetailComplaint
{
    public decimal Id;
    public decimal Status;
    public string Name;
    public decimal ServiceId;
    public string Service;
    public string Title;
    public string Customer;
    public string Description;
    public DateTime CreatedDate;
    public decimal CreatedBy;
    public string Author;
    public decimal? AssignedBy;
    public decimal? AssignedTo;
    public string Technician;
    public DateTime? AssignedDate;
    public string Contact;
}

然后在查询中使用它(...选择新的DetailComplaint {//所有字段与之前相同})

但是现在当我绑定数据时,GridView会抛出一个异常,它无法找到名为“Id”的字段或属性,它在DetailComplaint中明确定义。

我该如何解决这个问题?谢谢

1 个答案:

答案 0 :(得分:2)

您是否尝试将这些设置为属性而不是字段?某些形式的绑定仅适用于属性并忽略字段。目前还不清楚你使用的是GridView,但这可能就是问题所在。

这里最简单的方法是使用像这样的自动属性

public class DetailComplaint
{
    public decimal Id {get; set; }
    public decimal Status {get; set; }
    public string Name {get; set; }
    public decimal ServiceId {get; set; }
    public string Service {get; set; }
    public string Title {get; set; }
    public string Customer {get; set; }
    public string Description {get; set; }
    public DateTime CreatedDate {get; set; }
    public decimal CreatedBy {get; set; }
    public string Author {get; set; }
    public decimal? AssignedBy {get; set; }
    public decimal? AssignedTo {get; set; }
    public string Technician {get; set; }
    public DateTime? AssignedDate {get; set; }
    public string Contact {get; set; }
}