为什么 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
的列创建无关?它应该只包括OccupationCodeId
到OccupationName
。我从未在其他网格上发现过这个问题。什么原因可能导致这种情况?
根据 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 的快速方法
干杯。