C# 为什么RadGridView试图为我的实体创建列';什么是集合属性?
我有一个C# 为什么RadGridView试图为我的实体创建列';什么是集合属性?,c#,wpf,telerik,telerik-grid,radgridview,C#,Wpf,Telerik,Telerik Grid,Radgridview,我有一个RadGridView,我这样填充它: public MainWindow() { InitializeComponent(); Occupations = _dbContext.Occupations.ToList(); DataGrid.ItemsSource = Occupations; } occulation实体类类似于以下内容(为简洁起见删除了属性): 公共部分类占用:XTimeEntity { 公共职业() { this.BUSCOMPLs=新列表
RadGridView
,我这样填充它:
public MainWindow()
{
InitializeComponent();
Occupations = _dbContext.Occupations.ToList();
DataGrid.ItemsSource = Occupations;
}
occulation
实体类类似于以下内容(为简洁起见删除了属性):
公共部分类占用:XTimeEntity
{
公共职业()
{
this.BUSCOMPLs=新列表();
this.EMPLOYEEs=新列表();
}
公共短职业代码ID{get;set;}
公共短SiteCodeId{get;set;}
公共短占用活动{get;set;}
公共字符串职业名称{get;set;}
公共虚拟ICollection总线组件{get;set;}
公共虚拟ICollection雇员{get;set;}
}
当代码运行时,在main窗口的最后一行上,我得到了错误(SqlException
):
无效的对象名称“dbo.OccupationBUSCOMPL”
无效的对象名称“dbo.OccupationEMPLOYEE”
当然,这些集合应该和RadGridView
的列创建无关?它应该只包括职业代码ID
到职业名称
。我从未在其他网格上发现此问题。是什么原因造成的?根据Telerik
RadGridView控件的默认行为是生成其列
自动基于基础数据源。这意味着
将RadGridView控件的ItemsSource设置为
例如,将创建一个单独的列
对于Employee对象的每个公共属性。这是
默认行为,不需要任何额外的努力
从你这边。只需设置RadGridView的ItemSource,然后
你准备好了
资料来源:
因此,您的所有属性都将自动生成。如果您阅读了本页(以及文档的其余部分),它会非常清楚地说明如何生成所需的列
快速编辑。。本指南还将帮助您找到“不自动生成列”的快速方法
干杯。上面有AutoGenerateColumns
属性吗?如果是,请尝试将其设置为false
。为什么您认为您的虚拟
列不会生成?您是否将虚拟
与抽象
混淆?谢谢。无论如何,我真的应该使用一个视图模型,它不包括那些集合属性,但是该属性对于您想要在视图模型中而不是网格中使用的属性仍然有用。
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; }
}