gpt4 book ai didi

c# - Visual Studio 2015 LinqToExcel 不工作

转载 作者:太空狗 更新时间:2023-10-29 23:50:12 24 4
gpt4 key购买 nike

我有一个用 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();

V入门级

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:\ncplus\npl\Logic\Importers\VodImporter\VodImporter.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;

关于c# - Visual Studio 2015 LinqToExcel 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com