Sql System.InvalidOperationException:必填列';项目编号';结果中不存在
我们随机得到这个异常,在谷歌搜索时我发现这可能是由于框架问题造成的。。。像服务包和所有……Sql System.InvalidOperationException:必填列';项目编号';结果中不存在,sql,linq,Sql,Linq,我们随机得到这个异常,在谷歌搜索时我发现这可能是由于框架问题造成的。。。像服务包和所有…… Public Shared Shadows Function Find(ByVal id As Integer) As Project Return CType(ActiveRecordBase.Find(Of Project)(id), Project) End Function 下面是启动/执行LINQ TO SQL查询的通用函数 Public Shared Function Fi
Public Shared Shadows Function Find(ByVal id As Integer) As Project
Return CType(ActiveRecordBase.Find(Of Project)(id), Project)
End Function
下面是启动/执行LINQ TO SQL查询的通用函数
Public Shared Function Find(Of T As ActiveRecordBase)(ByVal id As Object) As ActiveRecordBase
Dim tableMetaData As MetaTable = GetTableMetadata(Of T)()
Dim sql As String = String.Format("SELECT * FROM {0} WITH (NOLOCK) WHERE {1} = ?", tableMetaData.TableName, GetPrimaryKeyName(Of T))
sql = sql.Replace("?", "{0}")
Return UnitOfWork.Current.ExecuteQuery(Of T)(sql, id).FirstOrDefault()
End Function
这是调用它的函数…
Public Shared Shadows Function Find(ByVal id As Integer) As Project
Return CType(ActiveRecordBase.Find(Of Project)(id), Project)
End Function
引发以下异常
System.InvalidOperationException:结果中不存在必需的列“project\u nbr”。
位于System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReaderBase1.GetColumnOrdinals(NamedColumn[]namedColumns)
位于System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReaderBase
1..ctor(ObjectReaderSession1会话,NamedColumn[]namedColumns,Object[]全局,Object[]参数,Int32 nLocals)
在System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReaderSession中
1.CreateReader[ToObject](Func2 FnMateriale,NamedColumn[]namedColumns,Object[]globals,Int32 nLocals,Boolean disposeDataReader)
位于System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReaderFactory
2.Create(DbDataReader dataReader、Boolean disposeDataReader、IReaderProvider provider、Object[]parentArgs、Object[]userArgs、ICompiledSubQuery[]子查询)
在System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询、查询信息查询信息、IOObjectReaderFactory工厂、对象[]parentArgs、对象[]userArgs、ICompiledSubQuery[]子查询、对象lastResult)
位于System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询、QueryInfo[]QueryInfo、IOObjectReaderFactory工厂、Object[]userArguments、ICompiledSubQuery[]subQueries)
位于System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询)
位于System.Data.Linq.DataContext.ExecuteMethodCall(对象实例,MethodInfo,对象[]参数)
位于System.Data.Linq.DataContext.ExecuteQuery[TResult](字符串查询,对象[]参数)
位于GeneralMills.P2.ProjectTracking.Domain.ActiveRecordBase.Find[T](对象id)
位于GeneralMills.P2.ProjectTracking.Domain.Project.Find(Int32 id)
位于GeneralMills.P2.ProjectTracking.Web.ProjectContext.GetCurrentDomainObject(Int32键)
位于GeneralMills.P2.ProjectTracking.Web.ContextBase.GetCurrentItem()处
在GeneralMills.P2.ProjectTracking.Web.BaseContextPage.OnLoad(EventArgs e)
您是否考虑过在这些情况下查询的表中不存在列
project\u nbr
?动态SQL是一堆隐患。如果您能够证明产生此问题的SQL是如何执行的,那么这将非常有用。