Realm Xamarin(C#)のLINQクエリに問題があります。"Date type mismatch" LINQクエリのRealmException
次のクラスを作成し、人がnullであるすべてのDogModelオブジェクトを取得しようと、私は「日付型の不一致」RealmException取得:私が得ることを期待する二LINQクエリで
public class DogModel : RealmObject
{
[PrimaryKey]
public long Id { get; set; }
public PersonModel Owner { get; set; }
}
public class PersonModel : RealmObject
{
[PrimaryKey]
public long Id { get; set; }
}
var p1 = new PersonModel();
p1.Id = 1;
var d1 = new DogModel();
d1.Id = 1;
d1.Owner = p1;
var d2 = new DogModel();
d2.Id = 2;
d2.Owner = null;
var _realm = Realm.GetInstance();
_realm.Write(() =>
{
_realm.Add(p1, true);
_realm.Add(d1, true);
_realm.Add(d2, true);
});
var data1 = Realm.GetInstance().All<DogModel>()
.ToList(); // This works
var data2 = Realm.GetInstance().All<DogModel>()
.Where(x => x.Owner == null)
.ToList(); // This does not work
を1つの項目(Id 2のDogModel)でリストするが、代わりに "Date type mismatch" RealmExceptionがスローされる。
どうしてですか?それを行う方法はありますか?
おそらく、複雑な所有者オブジェクトではなく、null可能なLongとしてOwnerIdを格納する方がよいでしょう。次に、OwnerIdがnullであるかどうかを確認します。 – akerra
それは可能かもしれませんが、それは一種の不器用な解決策であるようです。それはちょうどうまくいくはずですよね?それは私にバグのようです... – Jonas