[英]Make a Select between two dates captured by JQuery Datepicker with Linq Entities
我正在使用Database First,EF 6,Visual Studio 2013 Pro。
這是Controller上的代碼
public ActionResult Index(string searchString, string datepicker, string datepicker2)
{
var transactions = db.transactions.Include(t => t.Client).Include(t => t.DocumentType).Include(t => t.MovementType1);
if (!String.IsNullOrEmpty(searchString))
{
transactions = transactions.Where(s => s.Client.Name.Contains(searchString) &&
s.Date >= Convert.ToDateTime(datepicker) && s.Date < Convert.ToDateTime(datepicker2));
}
return View(transaccions.ToList());
}
通過客戶名稱搜索時,它可以很好地進行選擇。
這是View的代碼
@using (Html.BeginForm())
{
<p>
Search Transactions by Name: @Html.TextBox("SearchString")
First Date:
<input type="text" id="datepicker"/>
Second Date:
<input type="text" id="datepicker2"/>
<input type="submit" value="Search"/>
</p>
}
如您所見,我通過日期選擇器中用戶所做的選擇來捕獲日期。
我想執行此查詢: SELECT * FROM TRANSACTION WHERE Client.Name LIKE (searchString) AND DATE BETWEEN (datepicker) AND (datepicker2)
。
我想按客戶的名字和日期范圍進行搜索。
問題是Linq沒有識別轉換方法。
我一直在尋找一種方法來做到這一點,沒有一個與我的代碼兼容。
有什么建議么?
您需要在Linq查詢之外進行轉換:
public ActionResult Index(string searchString, string datepicker, string datepicker2)
{
var transactions = db.transactions.Include(t => t.Client).Include(t => t.DocumentType).Include(t => t.MovementType1);
if (!String.IsNullOrEmpty(searchString))
{
//Get your dates here...
var fromDate = Convert.ToDateTime(datepicker);
var toDate = Convert.ToDateTime(datepicker2);
transactions = transactions.Where(s => s.Client.Name.Contains(searchString) &&
s.Date >= fromDate && s.Date < toDate);
}
return View(transaccions.ToList());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.