为什么RadGridView也试图为我的实体的集合属性创建列?

时间:2013-10-11 10:44:02

标签: c# wpf telerik telerik-grid radgridview

我有一个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的列创建无关?它应该只包含OccupationCodeIdOccupationName。我从来没有在其他网格上发现过这个问题。什么可能导致这种情况?

1 个答案:

答案 0 :(得分:0)

根据Telerik的说法......

  

RadGridView控件的默认行为是生成其列   自动基于底层数据源。这意味着   当您将RadGridView控件的ItemsSource设置为a时   例如,员工集合将创建一个单独的列   对于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

干杯。