路過時,我有一個例子模型,看起來像這樣:如何建立一個動態凡與精緻小巧的第一個型號
public class PersonModel
{
public int Id {get; set;}
public string FirstName {get; set;}
public string Lastname {get; set;}
public string City {get; set;}
}
在我的倉庫,我想創建,我傳遞一個搜索方法我模型 - 但並不是所有的字段都會被填充。我想根據模型中的字段是否填充來創建WHERE和AND。如果該字段沒有填充,那麼我不想爲它創建一個WHERE子句。
例如 - 如果我通過在名字=「鮑勃」和城市=「波士頓」,那麼我想我的搜索看起來像這樣:
SELECT * FROM PersonTable WHERE FirstName = @firstName AND City = @city
由於我沒有在編號或名字我不傳球不希望他們添加到查詢中。如果我只是通過在城市=「波士頓」,那麼我希望它看起來像這樣:
SELECT * FROM PersonTable WHERE City = @city
我的回購方法會是這個樣子
using Dapper;
public List<PersonModel> Search(PersonModel model)
{
//db = DbConnection connection
var selectSql = "SELECT * FROM PersonTable "; //build out where clause somehow
return db.Query<PersonModel>(selectSql).ToList();
}
我的問題是如何將我打造了這一點在我的回購方法正確嗎?
您可以有條件地附加where子句。儀式? – Shyju
我假設是的,是的。但是,我正在尋找一個體面的例子來說明如何去做。 – Eldorian