使用 SqlKata 连接表查询

Join tables query with 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编译器。

结帐:https://sqlkata.com/docs/join

var query = new Query("comments").LeftJoin("Posts", j =>
    j.On("Posts.Id", "Comments.Id").WhereNotNull("Comments.AuthorId")
);