簡體   English   中英

如何使用Entity Framework 6.1返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM