在我的 C# 应用程序中,我有一个带有“person”数据的 datagridview,这意味着这个 datagrisview 的数据源是使用类 person 的 IList 设置的。
我的人模型包含以下字段(只是模型,而不是 datagridview):
string foreName
string surname
int devisionId
int someOtherId
Organisation orga
组织是另一种与 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.organName 以 nullpointerexeption 结尾。
现在的问题是:如何为 datagridview-datasource 编写我的选择语句,以便在 Organization 不为空时显示组织名称,否则将其他内容打印到 datagridview(例如:没有可用的组织)