【发布时间】:2016-11-30 20:05:32
【问题描述】:
我正在尝试创建一个查询 AdventureWorks2012 数据库并使用 Jquery ui datepicker 基于日期时间范围填充强类型表的 SPA。
我遇到的问题是它返回所有相同的重复记录。
感谢您的帮助!
_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
-
我认为这是一种交叉连接尝试使用内连接或使用连接语句左连接
标签: sql entity-framework linq model-view-controller