gpt4 book ai didi

c# - 有没有办法在 SQL DataContext 上调用 ExecuteQuery 并返回元组而不是类/对象

转载 作者:行者123 更新时间:2023-11-30 20:33:01 25 4
gpt4 key购买 nike

我主要尝试运行以下查询:

List<Tuple<int, string>> Details = new List<Tuple<int, string>>();
try
{
using (DataContext context = new DataContext(connectionString))
{
string query = @"SELECT [ID],
[NAME]
FROM [DB].[dbo].[TABLE]
WHERE [OTHER_ID] = {0}";

Details = context.ExecuteQuery<Tuple<int, string>>(query, otherID).ToList();
}
}
catch (Exception e)
{
throw;
}
return Details;

这不起作用,因为 ExecuteQuery 需要一个具有无参数构造函数的对象。

现在的解决方法非常简单:创建一个小对象而不是这个元组

放弃 DataContext,只在 SQLConnection 上运行查询,然后在结果上运行表适配器。

由于项目的性质,我不想两者兼而有之。有什么可以让我将查询结果返回到元组吗?

最佳答案

也许你可以这样做(我试过了并且有效):

var cmd = context.Database.Connection.CreateCommand();
int whatever = 0;
cmd.CommandText = "SELECT [ID], [ NAME ] FROM[ DB ].[ dbo ].[ TABLE ] WHERE[ OTHER_ID ] = @Param1 ";
cmd.Parameters.Add( new SqlParameter( "Param1", whatever ) );
List<object> items = new List<object>();
cmd.Connection.Open();
var reader = cmd.ExecuteReader();
while( reader.Read() ) {
items.Add( Tuple.Create<int, int>((int)reader[0], (int) reader[1]) );
}
return items; // you can cast it here to whatever you want

关于c# - 有没有办法在 SQL DataContext 上调用 ExecuteQuery 并返回元组而不是类/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40730765/

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