不需要DbSet在Entity Framework Core中執行原始SQL查詢
在Entity Framework Core中,執行不依賴DbSet的原始SQL查詢變得更具挑戰性。傳統的dbData.Database.SqlQuery<somemodel>
方法已被移除,開發者需要尋找替代方法來使用SQL查詢檢索資料。
EF Core 8以上版本
EF Core 8引入了SqlQuery
方法,支援從原始SQL查詢傳回標量值和任意型別。此方法可讓您直接執行SQL查詢並將結果對應到所需的類型。
EF Core 3.0
對於EF Core 3.0,可以使用無鍵實體類型(以前稱為查詢類型)。這些類型不會映射到特定的資料庫表,允許任意資料檢索。若要定義無鍵實體類型,請在您的模型配置中使用[Keyless]
資料註解或HasNoKey()
方法。
EF Core 2.1
在EF Core 2.1 Release Candidate 1中,引入了查詢類型。這些類型用作臨時FromSql()
查詢的回傳類型,映射到沒有主鍵的資料庫視圖或表。在您的DbContext中定義一個DbQuery<t>
屬性來表示查詢類型,然後使用FromSql
方法執行查詢。
範例:
<code>public DbQuery<somemodel> SomeModels { get; set; } var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</somemodel></code>
總結
這些方法提供了在Entity Framework Core中執行原始SQL查詢的不同方法,而無需依賴DbSet。選擇最適合您的特定需求和EF Core版本的方法。
以上是在不使用DBSET的情況下,如何在實體框架核心中執行RAW SQL查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!