1
這EF事情似乎並不是一件容易的路線,我作爲一個初學者:(我有以下SQL這給20個記錄:凡在實體框架沒有返回正確的結果第
SELECT
Suppliers.SupplierName,
srma.Id,
srma.CreatedOn,
srmaStatuses.StatusName,
srma.Status,
srma.PONumber,
srma.PONumber,
PurchaseOrders.PODate,
PurchaseOrders.suppliersOrderNumber
FROM
SRMAs srma
join srmastatuses on srma.status = srmastatuses.id
JOIN PurchaseOrders on SRMA.PONumber = PurchaseOrders.PONumber
JOIN Suppliers on Suppliers.SupplierID = PurchaseOrders.SupplierID
WHERE
srma.Status in (0,1)
AND(PurchaseOrders.suppliersOrderNumber LIKE '%2002%' OR srma.PONumber = '2002')
我做了如下LINQ該版本不返回任何記錄:如果我還是刪除這部分
var searchQuery = collection["query"].Trim();
DBContext_Model db = new DBContext_Model();
int[] ids = new int[] { 0, 1 };
//LINQ way to JOIN tables
var srmas = (
from SRMAs in db.SRMAs
join SRMAStatus in db.SRMAStatus on SRMAs.Id equals SRMAStatus.Id
join PurchaseOrders in db.PurchaseOrders on SRMAs.PONumber equals PurchaseOrders.PONumber
join Suppliers in db.Suppliers on PurchaseOrders.SupplierID equals Suppliers.SupplierID
join SRMADetails in db.SRMADetails on SRMAs.Id equals SRMADetails.SRMAId
where
(
ids.Contains(SRMAs.Status)
&&
(
searchQuery.Contains(PurchaseOrders.suppliersOrderNumber)
||
searchQuery.Contains(SqlFunctions.StringConvert((decimal)SRMAs.PONumber))
)
)
select new
{
SRMAs.Status,SRMAs.Id,
SRMAs.PONumber,
SRMAs.CreatedOn,
Suppliers.SupplierName,
SRMAStatus.StatusName,
PurchaseOrders.PODate,
PurchaseOrders.suppliersOrderNumber
}).ToList();
它只返回4條記錄,雖然它應該做的20
&&
(
searchQuery.Contains(PurchaseOrders.suppliersOrderNumber)
||
searchQuery.Contains(SqlFunctions.StringConvert((decimal)SRMAs.PONumber))
)
是否可以使用LINQ而不是搞亂我的生活?
這部分'SRMAs.Id等於SRMAStatus.Id',不應該是'SRMAs .StatusId等於SRMAStatus.Id'? – 2014-10-01 18:17:24
尷尬對我來說,是:( – Volatil3 2014-10-01 18:20:47
@YuliamChandra即使這樣,後''&&沒有返回結果 – Volatil3 2014-10-01 18:24:31