![](/img/trans.png)
[英]C# Cannot implicitly convert type 'string' to 'System.DateTime'
[英]Cannot implicitly convert type 'System.DateTime?' to 'int?' C# Linq
代碼:突出顯示了最底部的部分,在這里我可以嘗試告訴Linq找到shipto列並在另一張表上更新datetimestamp一定時間,並告訴我不能隱式轉換類型'System.DateTime?'。 到“ int?” 我不確定如何繼續...
var TestingLinq = (from a in db.shp_master
join b in db.shp_status on a.serialnbr equals b.serialnbr into b_join
from b in b_join.DefaultIfEmpty()
where
a.shipto == "1022a" &&
a.status == "s" &&
b.status == "s" &&
a.shpreq == 0
group new {a, b} by new {
a.serialnbr,
a.trailer,
a.shipto
} into g
orderby
g.Key.serialnbr
select new RecieveTruck {
SerialNumber = g.Key.serialnbr,
TrailerNumber = (g.Key.trailer ?? "N/A"),
Shipped = g.Min(p => p.b.datetimestamp),
ETA =
g.Key.shipto == "1026" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) :
g.Key.shipto == "2020" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(195) :
g.Key.shipto == "2017" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) :
g.Key.shipto == "nor" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) : null
});
return View(TestingLinq);
給我標題中的錯誤。...我試圖將此SQL查詢轉換為Linq:
SELECT a.serialnbr, ISNULL(a.trailer, 'N/A') AS 'trailer', MIN(b.datetimestamp) AS 'datetimestamp',
CASE WHEN a.shipto = '1026' THEN DATEADD(mi, 180, MIN(b.datetimestamp))
WHEN a.shipto = '2020' THEN DATEADD(mi, 195, MIN(b.datetimestamp))
WHEN a.shipto = '2017' THEN DATEADD(mi, 180, MIN(b.datetimestamp))
WHEN a.shipto = 'nor' THEN DATEADD(mi, 180, MIN(b.datetimestamp))
ELSE NULL END AS 'eta'
FROM shp_master AS a LEFT OUTER JOIN shp_status AS b ON a.serialnbr = b.serialnbr
WHERE a.shipto = '1022a' AND a.status = 's' AND b.status = 's' AND a.shpreq = 0
GROUP BY a.serialnbr, a.trailer, shipto
ORDER BY a.serialnbr
在您的評論中,您指定了RecieveTruck.ETA
為int?
,但是您正在通過分配
ETA = g.Key.shipto == "1026" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) :
g.Key.shipto == "2020" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(195) :
g.Key.shipto == "2017" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) :
g.Key.shipto == "nor" ? (System.DateTime?)Convert.ToDateTime(g.Min(p => p.b.datetimestamp)).AddMinutes(180) : null
那將解析為DateTime?
。 您需要選擇一個。 好像您要尋找的ETA
是DateTime?
,不過,所以我只需要更改該屬性類型,就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.