だから私は私のUserDatabse.csクラスでこのメソッドを使用して、特定の日付のためにクラス「シュガー」のインスタンスを取得しようとしています:取得エラー:System.NotSupportedException際日付の比較
public List<Sugar> GetSugarDate(DateTime dt)
{
var bld = database.Table<Sugar>().Where(mi => mi.Time.Date == dt.Date).ToList();
return bld;
}
*に入れたままにしてください現時点ではアプリにはSugarのインスタンスがないので、日付の比較はnullと実際の日付の間にあることに注意してください。私はそれがエラーを引き起こしていると思う、任意のソリューションは高く評価されるだろう。
このメソッドの呼び出しは、別のクラスでは、このように構成されています
は DateTime Time = DateTime.Now;
ObservableCollection<Image> Sugar_Count = new ObservableCollection<Image>();
Image s = new Image();
s.Source = "drawable/soda.png";
var xa = App.Database.GetSugarDate(Time);
Sugar.csのように定義されたクラスは、次のとおりです。次のように今すぐエラーが取得され
public class Sugar
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public DateTime Time { get; set; }
public int DrinkCount { get; set; }
public Sugar()
{
Time = DateTime.Now;
DrinkCount = 0;
}
}
は次のとおりです。
System.NotSupportedException: Member access failed to compile expression at SQLite.TableQuery'1[T].CompileExpr(System.Linq.Expressions.Expression expr, System.Collections.Generic.List'1[T]queryArgs)[0x006cc]in <9b4aaa861238418bec74a2ddde70f09>:0 at SQLite.TableQuery'1[T].CompileExpr(System.Linq.Expressions.Expression expr, System.Collections.Generic.List'1[T]queryArgs)[0x0009d]in <9b4aaa861238418bec74a2ddde70f09>:0 at SQLite.TableQuery'1[T].CompileExpr(System.Linq.Expressions.Expression expr, System.Collections.Generic.List'1[T]queryArgs)[0x0005f]in <9b4aaa861238418bec74a2ddde70f09>:0 at SQLite.TableQuery'1[T].CompileExpr(System.Linq.Expressions.Expression expr, System.Collections.Generic.List'1[T]queryArgs)[0x00008]in <9b4aaa861238418bec74a2ddde70f09>:0 at
System.Collections.Generic.List'1[T]..ctor(System.Collections.Generic.IEnumerable'1[T]collection)[0x00062] in /Users/builder/jenkins/workspace/xamarin-android/external/mono/mcs/class/referencesource/generic/list.cs:98 .....
エラーは、この特定の行で発生します
var bld = database.Table<Sugar>().Where(mi => mi.Time.Date == dt.Date).ToList();
どこが間違っていますか?
私はあなたのミスがmi.Time.Date' 'であると思います。データベースに「mi」がない場合、null参照例外がスローされます。この方法でコーディングしてください: 'mi?.Time.Date'。 –
このようにすると、インラインエラーが発生します。式ツリーlambdaには、NULL伝播演算子が含まれていない可能性があります – TigerLionCheetah