c# – Visual Studio 2015 LinqToExcel不起作用
发布时间:2020-12-15 20:56:36 所属栏目:百科 来源:网络整理
导读:我有一个用VS2012编写的asp.net应用程序.在我搬到VS2015之前,我一直在使用 LinqToExcel而没有任何问题. 这是我的代码: var excel = new ExcelQueryFactory(fileName);var entriesQuery = from entry in excel.WorksheetVEntry(0) where entry.MovieTitle !=
我有一个用VS2012编写的asp.net应用程序.在我搬到VS2015之前,我一直在使用
LinqToExcel而没有任何问题.
这是我的代码: var excel = new ExcelQueryFactory(fileName); var entriesQuery = from entry in excel.Worksheet<VEntry>(0) where entry.MovieTitle != null select entry; var entries = entriesQuery.ToList(); VEntry类 public class VEntry { [ExcelColumn("id kolekcji")] [DefaultValue("")] public String CollectionId { get; set; } [ExcelColumn("nazwa kolekcji")] [DefaultValue("")] public String CollectionName { get; set; } [ExcelColumn("Tytu? serialu/serii/filmu")] [DefaultValue("")] public String MovieTitle { get; set; } [ExcelColumn("Tytu? odcinka")] [DefaultValue("")] public String EpisodeTitle { get; set; } [ExcelColumn("Sezon")] [DefaultValue("")] public String Season { get; set; } [ExcelColumn("nr odcinka")] [DefaultValue("")] public String EpisodeNumber { get; set; } [ExcelColumn("Start")] public DateTime StartDate { get; set; } [ExcelColumn("Koniec")] public DateTime EndDate { get; set; } [ExcelColumn("Kategoria tematyczna")] [DefaultValue("")] public String Category { get; set; } [ExcelColumn("Cena")] [DefaultValue("")] public String Price { get; set; } [ExcelColumn("kategoria wiekowa")] [DefaultValue("")] public String AgeCategory { get; set; } [ExcelColumn("Seria (0/1)")] [DefaultValue("")] public bool IsSeries { get; set; } [ExcelColumn("box set (0/1)")] [DefaultValue("")] public bool IsBoxSet { get; set; } [ExcelColumn("Ca?y sezon")] [DefaultValue("")] public bool IsFullSeason { get; set; } } 它在VS2012上运行良好.当我在VS2015中构建它时,我会在线上获得异常 var entries = entriesQuery.ToList(); : Object must implement IConvertible. at System.Convert.ChangeType(Object value,Type conversionType,IFormatProvider provider) at LinqToExcel.Extensions.CommonExtensions.Cast(Object object,Type castType) at LinqToExcel.Extensions.CommonExtensions.Cast[T](Object object) at LinqToExcel.Extensions.CommonExtensions.IsNullValue(Expression exp) at LinqToExcel.Query.WhereClauseExpressionTreeVisitor.VisitBinaryExpression(BinaryExpression bExp) at LinqToExcel.Query.SqlGeneratorQueryModelVisitor.VisitWhereClause(WhereClause whereClause,QueryModel queryModel,Int32 index) at Remotion.Data.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 bodyClauses,QueryModel queryModel) at LinqToExcel.Query.SqlGeneratorQueryModelVisitor.VisitQueryModel(QueryModel queryModel) at LinqToExcel.Query.ExcelQueryExecutor.GetSqlStatement(QueryModel queryModel) at LinqToExcel.Query.ExcelQueryExecutor.ExecuteCollection[T](QueryModel queryModel) at Remotion.Data.Linq.Clauses.StreamedData.StreamedSequenceInfo.ExecuteQueryModel(QueryModel queryModel,IQueryExecutor executor) at Remotion.Data.Linq.QueryProviderBase.Execute[TResult](Expression expression) at Remotion.Data.Linq.QueryableBase`1.GetEnumerator() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Logic.Importers.VodImporter.VodImporter.Run(String fileName,Boolean publishAfterImport) in C:ncplusnplLogicImportersVodImporterVodImporter.cs:line 103 at Website.sitecore_modules.Shell.Editors.VodImporterEditor.Page_Load(Object sender,EventArgs e) 但是当我在VS2012中构建它时,它再次起作用.可能有什么不对?我不知道. 编辑:在VS2013上也可以. 解决方法
我假设’MovieTitle’不接受模型中的空值.如果这是真的,请将您的where子句更改为以下内容.
var entriesQuery = from entry in excel.Worksheet<VEntry>(0) where entry.MovieTitle != string.Empty select entry; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |