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

本文关键字:集合 属性 创建 实体 我的 RadGridView 为什么 | 更新日期: 2023-09-27 18:35:00

我有一个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"。职业雇员'

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

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

根据 Telerik

...

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

干杯。

相关文章: