0

我无法让我的 linq 线路正常工作。

var result = databaseObjects.Where(dbo => dbo.GetType() == typeof(Model.DatabaseTable) ? (dbo as Model.DatabaseTable).FullName.Equals(name) : dbo.Name.Equals(name));

我试图使用这个问题的答案中的方法来使其工作。我想我知道出了什么问题,DatabaseObject 是一个抽象类,我想避免在 DatabaseTable 以外的所有东西上使用 FullName 属性,但据我所见,它确实会检查它。

编辑:错误是:

System.NullReferenceException was unhandled
{"Object reference not set to an instance of an object."}

问题是我忘记分配 DatabaseObject.Name,DatabaseTableObject.FullName 已分配。

4

1 回答 1

3

看起来好像或者FullNameNamenull的一个 dbo 对象上。要验证将您的代码更改为:

var result = databaseObjects.Where(dbo => dbo.GetType() == typeof(Model.DatabaseTable) ? (dbo as Model.DatabaseTable).FullName == name : dbo.Name == name); 

它不应该抛出异常。

于 2012-12-11T14:35:06.667 回答