我試圖創建一個查詢AdventureWorks2012數據庫的SPA,並使用Jquery ui datepicker基於日期時間範圍填充強類型表。從SQL中的多個表填充ViewModel
我遇到的問題是它返回所有相同的重複記錄。
感謝您的幫助!
_layout查看代碼:
<div>
<h2>Pick a date range:</h2>
<form action='@Url.Action("GetOrders","Home")' method="post">
<label for="from">From</label>
<input type="text" id="from" name="startDate">
<label for="to">To</label>
<input type="text" id="to" name="endDate">
<input type='submit' value='Set Range' />
</form>
</div>
$(function() {
var dateFormat = "mm/dd/yy",
from = $("#from")
.datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3
})
.on("change", function() {
to.datepicker("option", "minDate", getDate(this));
}),
to = $("#to").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3
})
.on("change", function() {
from.datepicker("option", "maxDate", getDate(this));
});
function getDate(element) {
var date;
try {
date = $.datepicker.parseDate(dateFormat, element.value);
} catch(error) {
date = null;
}
return date;
}});
GetOrders.cshtml代碼:
@model System.Collections.Generic.List<ApexAssignment.ViewModels.OrderViewModel>
@foreach (var item in Model)
{
<tr>
<td class="tg-yw4l">
@item.Store
</td>
<td class="tg-yw4l">
@item.Customer
</td>
<td class="tg-yw4l">
@item.AccountNumber
</td>
<td class="tg-yw4l">
@item.InvoiceNumber
</td>
<td class="tg-yw4l">
@item.CustomerPO
</td>
<td class="tg-yw4l">
@item.OrderDate
</td>
<td class="tg-yw4l">
@item.DueDate
</td>
<td class="tg-yw4l">
@item.InvoiceTotal
</td>
<td class="tg-yw4l">
@item.ProductNumber
</td>
<td class="tg-yw4l">
@item.Quantity
</td>
<td class="tg-yw4l">
@item.UnitNet
</td>
</tr>
}
控制器方法代碼:
[HttpPost]
public ActionResult GetOrders(DateTime startDate, DateTime endDate)
{
var model = (from p in db.People
from pd in db.Products
from so in db.SalesOrderDetails
from sh in db.SalesOrderHeaders
where sh.OrderDate > startDate && sh.OrderDate < endDate
from s in db.Stores
from c in db.Customers
select new OrderViewModel()
{
AccountNumber = sh.AccountNumber,
Customer = p.FirstName + " " + p.LastName,
Store = s.Name,
ProductNumber = pd.ProductNumber,
DueDate = sh.DueDate,
CustomerPO = sh.PurchaseOrderNumber,
Quantity = so.OrderQty,
InvoiceNumber = sh.SalesOrderNumber,
UnitNet = so.UnitPrice,
InvoiceTotal = sh.TotalDue,
OrderDate = sh.OrderDate
});
return View(model.ToList());
}
你需要添加連接到您的LINQ –
我認爲這是一種交叉連接嘗試使用內部連接或通過使用連接語句左連接 –