簡體   English   中英

如何在 LINQ C# 中使用 Convert.ToDateTime

[英]How to use Convert.ToDateTime in LINQ C#

我有一個關於 EntityFrameWork/LINQ 的問題。 首先,我想從 b.Datetime(數據類型為字符串)設置 Year,所以我使用 Convert.ToDateTime 方法,但出現錯誤。

這是我的代碼。

IQueryable<AlarmCount> alarmCount = from b in fatalalarminfo
                                    group b by new
                                    {
                                        GroupKey = b.Eqpid,
                                        Year = Convert.ToDateTime(b.DateTime).Year
                                     } into gbs
                                     orderby gbs.Key.Year, gbs.Key.GroupKey
                                     select new AlarmCount()
                                     {
                                         GroupKey = gbs.Key.GroupKey,
                                         Period = new Period(EnumPeriodType.YEAR, gbs.Key.Year),
                                         Amount = gbs.Count()
                                     };

請參閱下面的錯誤消息。

在此處輸入圖像描述

問題是它是一個 IQueryable。 這意味着您的 linq 查詢正在轉換為 SQL,它無法將 Convert.ToDateTime 轉換為 sql。 您可以使用DateTime.ParseExact ,它可以正確轉換為 SQL 。

IQueryable<AlarmCount> alarmCount = from b in fatalalarminfo
                                            group b by new
                                            {
                                                GroupKey = b.Eqpid,
                                                Year = DateTime.ParseExact(b.DateTime, "<format>", CultureInfo.InvariantCulture).Year
                                            } into gbs
                                            orderby gbs.Key.Year, gbs.Key.GroupKey
                                            select new AlarmCount()
                                            {
                                                GroupKey = gbs.Key.GroupKey,
                                                Period = new Period(EnumPeriodType.YEAR, gbs.Key.Year),
                                                Amount = gbs.Count()
                                            };

確保將<format>替換為正確的格式。

IQueryable<T>在數據庫中進行查詢,您會收到此異常,因為您的數據庫中沒有映射到Convert.ToDateTime的 function。 嘗試IEnumerable<T>代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM