簡體   English   中英

在.net實體框架核心中執行sql語句

[英]Execute sql statement in .net entity framework core

我創建了 ASP.NET 5.0 Core-Web-API 項目並使用 package Microsoft.EntityFrameworkCore版本 5.0.13。 如果我運行簡單的 sql 語句var simple = myDbContext.myTable.FromSqlInterpolated($"Select Id, colA, colB From Testvw")一切都按預期工作。 如果我執行存儲在文本文件中的相同查詢,我會遇到錯誤:

 string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
 string sqlFile = Path.Combine(path, @"SQL_Ressourcen\myQuery.txt");
 String sql = System.IO.File.ReadAllText(sqlFile);
 var simple = myDbContext.myTable.FromSqlInterpolated($"{sql}");

System.InvalidOperationException
  HResult=0x80131509
  Nachricht = 'FromSqlRaw' or 'FromSqlInterpolated' was called with non-composable SQL and with a query composing over it. Consider calling 'AsEnumerable' after the method to perform the composition on the client side.
  Quelle = Microsoft.EntityFrameworkCore.Relational

從文件加載查詢字符串時如何執行查詢?

我認為您可以執行以下操作:

var blogs = context.myTable
.FromSqlRaw($"Select Id, colA, colB From myTable")
.ToList();
// or AsEnumerable();
var blogs = context.myTable
.FromSqlRaw($"Select Id, colA, colB From myTable")
.AsEnumerable();

來源:原始 SQL 查詢

否則,您可以嘗試添加如下內容:

var simple = _context.myTable.FromSqlInterpolated($"Select Id, colA, colB From myTable").ToList();

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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