c# - 使用 SqlKata 连接表查询
问题描述
我使用 ADO.NET 创建了一个查询,但必须将其更改为 SqlKata。尝试了几次。这是我尝试编写的最后一个查询,但是有一个错误说 join 只接受一个参数:
var partnumId = db.Query("EED_OBJ_Entity").Select("ID")
.Join(J => J.On("EED_OBJ_Entity.IDCategory", "EED_OBJ_Categories.ID"));
这是我尝试使用 SqlKata 重写的代码:
internal static string GetPartNumberId(string partNumber, int type, SqlConnection connection)
{
SqlCommand cmd = new SqlCommand($"select e.ID from EED_OBJ_Entity as e join EED_OBJ_Categories as c on e.IDCategory = c.ID where e.PartNo = (@partNumber) and c.[Type] = (@type)",
connection);
cmd.Parameters.Add(new SqlParameter("partNumber", partNumber));
cmd.Parameters.Add(new SqlParameter("type", type));
cmd.CommandType = CommandType.Text;
return (cmd.ExecuteScalar()).ToString();
}
知道怎么做吗?
解决方案
SqlKata 连接函数有另一个重载,它比 lambda 函数简单得多。
var partnumId = db.Query("EED_OBJ_Entity as e").Select("e.ID")
.Join("EED_OBJ_Categories as c", "e.IDCategory", "c.ID");
您还可以使用SqlKata Playgroud查看已编译的查询。我使用了 SqlServer 编译器。
推荐阅读
- android - 适用于 Android 的 Google 登录:当我将 Web 客户端 ID 传递给 requestIdToken 时出现 12500 错误
- javascript - 如何在javascript中同时使用输入按钮和onclick(鼠标单击)
- c++ - 在 MSVC 2017 中添加新类时找不到基类
- android - 如何从位置服务获取位置超时异常
- javascript - react native show the other component depends on the picker choice
- laravel - 在 laravel 中不使用节点
- excel - Excel VBA 电子邮件创建
- c++ - For 循环和并行数组:未声明的标识符
- twitter-bootstrap - Bootstrap/ChartJS - 如何使值影响图形?
- asp.net - 我们可以集成 keycloak 来为 asp.net Web 应用程序增加安全性吗?