LinqToExcel-导致Object的InvalidCastException必须实现Iconverable错误



我使用以下代码在LinqToExcel:中查询excel文件

var excelFile = new LinqToExcel.ExcelQueryFactory(@""+txtFileName.Text.Replace(@"\",@""));
var properties = from p in excelFile.Worksheet<Property>()
                 where AssessmentID != null
                 select p;
foreach (var autoP in properties)
        doSomething();

当我查看运行时调试器时,在查看属性变量的"结果视图"时,我会看到一个"InvalidCastException"。所以,我假设我的类定义有一些奇怪的地方。我还假设我不需要将类的所有成员映射到excel文件,而只需要映射我认为合适的成员
所以,这也是类的定义:

public class Property
{
    [DataMember]
    public int? Year { get; set; }
    [DataMember]
    public string ChangeReason { get; set; }
    [DataMember]
    public string AssessmentID { get; set; }
    [DataMember]
    public string CallBackNotes { get; set; }
    [DataMember]
    public string InspectionNotes { get; set; } 
    [DataMember]
    public string Notes { get; set; }
    [DataMember]
    public bool Authorization { get; set; }
    [DataMember]
    public string ChargeStatus { get; set; }
    [DataMember]
    public string LegalLandDesc { get; set; }
    [DataMember]
    public string Address { get; set; }
    }

以下是指向GitHub上linqToExcel源代码的链接:linqToExcel泛型比我看到的更复杂,而且是我(显然)需要复习的东西

是不是我遗漏了一些明显的东西会导致这个问题?有什么想法可以去哪里寻找或者如何解决这些错误吗?

查询的where子句是导致错误的原因。它引用了不适用于上下文的null关键字。我把它改成:
where  !String.IsNullOrEmpty(p.AssessmentID) 

这解决了我的问题。

自我提醒:从他人那里继承代码时,请先检查基础知识!

相关内容

  • 没有找到相关文章

最新更新