EF执行SQL语句 结果和直接在Sqlserver中执行结果不一致
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF执行SQL语句 结果和直接在Sqlserver中执行结果不一致相关的知识,希望对你有一定的参考价值。
先说问题
直接执行sql的结果
var result = base.Context.Customers.SqlQuery(sql);
sql 语句是打断点取得的,连接的也同是一个数据库 ,但是结果不一致
用SqlDataAdapter把数据取到DataSet 中也是正确的
所以可以排除sql 语句有问题
虽然找出了一个解决办法,但是在这里加一个DataSet太丑陋了,虽然规避了问题
然后换了一个EF直接执行sql的方式
var result = base.Context.Database.SqlQuery(typeof(Customer), sql).GetEnumerator();
这个方法取得的数据就是正常的,只是返回的是一个 DbRawSqlQuery 对象,
GetEnumerator()或者ToListAsync()处理之后才能获得IEnumerable<T>对象
虽然绕过了问题,但是并没有找到发生问题的原因,如果有大神知道还望赐教
以上是关于EF执行SQL语句 结果和直接在Sqlserver中执行结果不一致的主要内容,如果未能解决你的问题,请参考以下文章
.NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程