【发布时间】:2013-01-11 21:34:28
【问题描述】:
在我的 C# 应用程序中,我有一个带有“person”数据的 datagridview,这意味着该 datagrisview 的数据源是使用 person 类的 IList 设置的。
我的人物模型由以下字段组成(只是模型,而不是 datagridview):
string foreName
string surname
int devisionId
int someOtherId
Organisation orga
Organisation 是另一种与 NHibernate 映射为一对多的模型。其中组织由字符串组成:
string orgaName
现在是棘手的部分(对我来说)...... 在我的 datagridview 中,我不想拥有所有人员字段,我只想拥有以下内容:
foreName
surname
orga.orgaName
获取前两个字段很容易:
dataGridView.DataSource = listOfPersons.Select(x => new { ForeName = x.ForeName, SurName = x.Surname}).ToList();
到目前为止,这工作正常,但现在我也想在我的 datagridview 中包含组织的名称,所以我尝试了这个:
dataGridView.DataSource = listOfPersons.Select(x => new { ForeName = x.ForeName, SurName = x.Surname, OrganisationName = x.Organisation.organName}).ToList();
如果每个人都有一个组织,这也可以正常工作,但事实并非如此。有些人没有组织,因此 'Organisation' 为空,并试图获取 Organisation.organName 以 nullpointerexeption 结尾。
现在的问题是: 如何为 datagridview-datasource 编写我的选择语句,以便在 Organization 不为空时显示组织名称,否则将其他内容打印到 datagridview(例如:没有可用的组织)
【问题讨论】:
标签: c# nhibernate select datagridview ilist