如何在实体框架6中创建绑定存储过程的方法?
如何创建映射SQL存储过程的函数?
我已经尝试过
var order = context.CustomerDetails.SqlQuery("DisplayTotalOrders @CustomerID", new SqlParameter("CustomerID", "1"));
var order = context.CustomerDetails.SqlQuery("DisplayTotalOrders @CustomerID", 1);
,但没有任何效果。
错误消息如下所示。而且这种方法似乎是一个临时执行。是否有一种注定要创建一种绑定EF中SQL Server存储过程的方法?我不是在谈论仅仅是插入,更新,删除功能。我指的是执行任何SQL Server存储的过程。
未经治疗的例外: system.data.entity.core.entityCommandExeCutionException:数据 读者与指定的 'testef_code.customerdetail'。类型的成员“ customerId”确实 具有相同名称的数据读取器中没有相应的列。 在 system.data.entity.core.query.internalles.columnmapfactory.getMemberordinalFromReader(dbdatareader system.data.entity.core.core.query.internaltrees.columnmapfactory.getColumnMapsFortepe(dbdataTareader stordatareader storedataReader,edmmaptepe at edmmapfactory.getMmapfactory.getMmapfactory.getMapfactory.getMapfactore.getMapfactore.core.core.core.core.core.core.core.core.core.core.core.core
2) system.data.entity.core.query.internalletes.columnmapfactory.createcolumnmapfromreaderandtype(dbdatareader storeDataReader, EdmType edmType, EntitySet entitySet, Dictionary
2 renameList) at System.Data.Entity.Core.Objects.ObjectContext.InternalTranslate[TElement](DbDataReader reader, String entitySetName, MergeOption mergeOption, Boolean streaming, EntitySet& entitySet, TypeUsage& ; > c__displayClass69
1.b__68() 在 system.data.entity.core.objects.objectContext.executeIntransaction [t](func1 func,idbexecutionStrateTrateGy exectateTrateTrateTrateTrateGy,boolean startLocalTransaction,boolean brolean earseAseConnnnnnnection) c__displayClass69
1.b__67() 在 system.data.entity.sqlserver.defaultsqlealectectionstrategy.execute [tresult](func1操作) []参数)在System.Data.Entity.Core.Objects.ObjectContext.executestoreQuery [telement](String CommandText,String commandText,String entitySetname,executionOptions executionOptions,object [] parameters in System.data.entity.entity.entity.internal.internal.internal.internal.internal.internal.internalset 1.<> c__displayClass11.b__10() 在System.data.entity.internal.lazyenumerator
1.Movenext() testef_code.program.main(string [] args)in B:\ users \ trio \ programming \ testef-code \ testef-code \ program.cs:第17行
How do I create a function mapping a SQL stored procedure?
I have tried
var order = context.CustomerDetails.SqlQuery("DisplayTotalOrders @CustomerID", new SqlParameter("CustomerID", "1"));
var order = context.CustomerDetails.SqlQuery("DisplayTotalOrders @CustomerID", 1);
but nothing has worked.
Error message is shown as below. And this method seems quite an ad-hoc execution. Is there a way destined to create a method which binds a SQL Server stored procedure in EF? I am not talking about just INSERT, UPDATE, DELETE functions. I am referring to executing any SQL Server stored procedure.
Unhandled Exception:
System.Data.Entity.Core.EntityCommandExecutionException: The data
reader is incompatible with the specified
'TestEF_Code.CustomerDetail'. A member of the type, 'CustomerID', does
not have a corresponding column in the data reader with the same name.
at
System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory.GetMemberOrdinalFromReader(DbDataReader
storeDataReader, EdmMember member, EdmType currentType, Dictionary2 renameList) at System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory.GetColumnMapsForType(DbDataReader storeDataReader, EdmType edmType, Dictionary
2 renameList) at
System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory.CreateColumnMapFromReaderAndType(DbDataReader
storeDataReader, EdmType edmType, EntitySet entitySet, Dictionary2 renameList) at System.Data.Entity.Core.Objects.ObjectContext.InternalTranslate[TElement](DbDataReader reader, String entitySetName, MergeOption mergeOption, Boolean streaming, EntitySet& entitySet, TypeUsage& edmType) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters) at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass69
1.b__68()
at
System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass69
1.b__67()
at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func1 operation) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters) at System.Data.Entity.Internal.Linq.InternalSet
1.<>c__DisplayClass11.b__10()
at System.Data.Entity.Internal.LazyEnumerator1.MoveNext() at System.Linq.Enumerable.Single[TSource](IEnumerable
1 source) at
TestEF_Code.Program.Main(String[] args) in
B:\Users\trio\Programming\TestEF-Code\TestEF-Code\Program.cs:line 17
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论