小编Eld*_*ian的帖子

如何在模型中传递时使用Dapper构建动态Where子句

我有一个示例模型,如下所示:

public class PersonModel
{
     public int Id {get; set;}
     public string FirstName {get; set;}
     public string Lastname {get; set;}
     public string City {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

在我的存储库中,我想创建一个我传入模型的搜索方法 - 但并不是所有字段都会被填充.我想创建一个WHERE和AND,基于是否填充了模型中的字段.如果没有填充该字段,那么我不想为它创建WHERE子句.

例如 - 如果我传入FirstName ="Bob"和City ="Boston",那么我希望我的搜索看起来像这样:

SELECT * FROM PersonTable WHERE FirstName = @firstName AND City = @city
Run Code Online (Sandbox Code Playgroud)

由于我没有传入Id或LastName,我不希望它们添加到查询中.如果我只是通过City ="Boston",那么我希望它看起来像这样:

SELECT * FROM PersonTable WHERE City = @city
Run Code Online (Sandbox Code Playgroud)

我的回购方法看起来像这样

using Dapper;
public List<PersonModel> Search(PersonModel model)
{
//db = DbConnection connection
    var selectSql = "SELECT * FROM PersonTable "; //build out where clause …
Run Code Online (Sandbox Code Playgroud)

.net c# sql dapper

25
推荐指数
3
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

dapper ×1

sql ×1