【发布时间】:2020-12-02 22:18:42
【问题描述】:
我正在开发一个接受文档作为上传文件的应用程序,这是一个具有多个值的 Excel 表格。它正在中断而不是上传...我已经找到了它正在中断的位置,但是我在理解这个确切的 LINQ 语法时遇到了问题。
public static List<PoolManager> getPoolManagersLoadedinMaster()
{
using (HRCMSEntities context = new HRCMSEntities())
{
HRCompInfo compInfo = new HRCompInfo();
DataTable dtCurrYear = compInfo.getConfiguration("CurrentYear");
var currYear = Convert.ToInt32(dtCurrYear.Rows[0]["Config_Val"].ToString());
var planningManagerQuery =
from COMP_REC_ENC in context.COMP_REC_ENC.Where(m => m.Year == currYear)
select new PoolManager
{
Planning_manager_ID = COMP_REC_ENC.Planning_Manager_ID
};
var planningManagerList = planningManagerQuery.Distinct().ToList();
return planningManagerList;
}
}
此代码在尝试运行时会中断
PlanningMangerList = planningManagerQuery.Distinct().ToList()
我检查了表格,数据在那里。有人可以帮我破译为什么这段代码会在那个确切的部分被破坏吗?理论会很好用......我收到了这个错误:
ERROR: System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'Special_6'. Invalid column name 'Special_9_New'. Invalid column name 'Special_10_New'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
我确实将这个项目从 SIT 数据库更改为 DEV 数据库...在实体框架方面,我确实更新了连接字符串目录,但不确定在实体框架方面连接字符串是否存在问题。我更新到这个了。
<add name="HRCMSEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient
谢谢
【问题讨论】:
-
您能否添加一个 catch 子句并向我们展示 exception.ToString() 输出?
-
是的,我现在正在这样做……一会儿
-
@noobprogrammer - 再看看。
-
@JeffreyPadgett - 我们可以看看
PoolManager的类定义吗? -
如何启用 sql 查询的日志记录,然后尝试手动执行查询以查看问题所在