0

我有一个RadGridView这样填充的:

public MainWindow()
{
    InitializeComponent();
    Occupations = _dbContext.Occupations.ToList();
    DataGrid.ItemsSource = Occupations;
}

Occupation实体类看起来像这样(为简洁起见,删除了属性):

public partial class Occupation : XTimeEntity
{
    public Occupation()
    {
        this.BUSCOMPLs = new List<BUSCOMPL>();
        this.EMPLOYEEs = new List<EMPLOYEE>();
    }

    public short OccupationCodeId { get; set; }
    public short SiteCodeId { get; set; }
    public short OccupationActive { get; set; }
    public string OccupationName { get; set; }
    public virtual ICollection<BUSCOMPL> BUSCOMPLs { get; set; }
    public virtual ICollection<EMPLOYEE> EMPLOYEEs { get; set; }
}

当代码运行时,在最后一行MainWindow我得到错误(SqlException):

无效的对象名称“dbo.OccupationBUSCOMPL”

无效的对象名称“dbo.OccupationEMPLOYEE”

RadGridView当然,这些集合应该与?的列创建无关。它应该只包括OccupationCodeIdthrough OccupationName。我从未在其他网格上发现此问题。什么可能导致这种情况?

4

1 回答 1

0

根据 Telerik...

RadGridView 控件的默认行为是根据基础数据源自动生成其列。这意味着,例如,当您将 RadGridView 控件的 ItemsSource 设置为员工集合时,将为您的 Employee 对象的每个公共属性创建一个单独的列。这是默认行为,不需要您进行任何额外的努力。只需设置 RadGridView 的 ItemSource 即可。

来源:http ://www.telerik.com/help/wpf/gridview-columns-defining-columns.html

因此,您的所有属性都将自动生成。如果您阅读此页面(以及文档的其余部分),它会非常清楚地说明如何生成您需要的列。

快速编辑.. 本指南还将帮助您找到“不自动生成列”的快速方法http://www.telerik.com/help/wpf/gridview-prevent-column-autogenerate.html

干杯。

于 2013-10-11T10:54:18.697 回答