首页 > 解决方案 > 使用 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();

        }

知道怎么做吗?

标签: c#sql.netsqlkata

解决方案


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 编译器。


推荐阅读