gpt4 book ai didi

c# - 如何使用 EF Core 执行 RAW SQL 查询?

转载 作者:行者123 更新时间:2023-12-05 04:00:57 24 4
gpt4 key购买 nike

基本上我遇到的问题是我想在数据库中运行一个查询,它不是我的模型的表示。

这是我创建与另一个数据库的连接的代码:

public static OtherContext GetNewContextGeneric(string connectionString)
{
var builder = new DbContextOptionsBuilder();
builder.UseSqlServer(connectionString);

OtherContext db = new OtherContext(builder.Options);

return db;
}

这是我执行查询的代码:

public List<IQueryble> Query (string connectionString, string query)
{
try
{
using(var contextGeneric = ContextFactory.GetNewContextGeneric(connectionString))
{
//I want something like this
return contextGeneric.Query(query).ToList();
}
}
catch(System.Data.SqlClient.SqlException ex)
{
throw new SQLIncorrectException(ex);
}
catch(System.InvalidOperationException ex)
{
throw new NotImplementedException();
}
}

有人可以帮帮我吗?

最佳答案

您可以使用DbDataReader:

using (var command = context.Database.GetDbConnection().CreateCommand())
{
command.CommandText = "SELECT * From Make";
context.Database.OpenConnection();
using (var reader = command.ExecuteReader())
{
// Do something with result
reader.Read(); // Read first row
var firstColumnObject = reader.GetValue(0);
var secondColumnObject = reader.GetValue(1);

reader.Read(); // Read second row
firstColumnObject = reader.GetValue(0);
secondColumnObject = reader.GetValue(1);
}
}

Here您可以了解更多如何从 DbDataReader 读取值。

或者你可以使用 FromSql()方法,但仅适用于预定义的 DbSet一些实体,这不是您想要的解决方案。

关于c# - 如何使用 EF Core 执行 RAW SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55778452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com