
[英]Using Entity Framework 5 to return an object equivalent to a datareader
[英]How can i return a dataReader using Entity Framework 6.1?
正如问题所要求的那样。 我正在为我的大多数代码使用实体框架,但我还需要执行并返回不在我的实体框架上下文中的sql表中的一个或多个列。
您可以使用Entity Framework运行原始查询 ,例如:
using (var context = new BloggingContext())
{
var blogNames = context.Database.SqlQuery<string>(
"SELECT Name FROM dbo.Blogs").ToList();
}
如果要返回更复杂的类型,可以定义自己的类并使用它。 只要属性与您选择的列的名称匹配,它就可以工作。 所以让我们上课:
public class MyClass
{
public int Id { get; set; }
public string UserName { get; set; }
}
并使用它:
List<MyClass> result = ctx
.Database.SqlQuery<MyClass>("SELECT Id, UserName FROM dbo.Users")
.ToList();
IDataReader的重点是通过数据传输数据,因为它通过线路返回(例如TCP / IP),因此不会产生将其全部填充到内存中的开销。 如果你正在处理数百万行,那么将所有内容读入内存是一个坏主意。 如果是这种情况,那么从EF API获取底层连接字符串并使用ADO.NET。 那里也有更好的Aysnc支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.