[英]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.