我在使用Realm Xamarin(C#)進行LINQ查詢時遇到了問題。「日期類型不匹配」在LINQ查詢中出現RealmException
當創建以下類,並嘗試獲取所有DogModel對象,其中人是空的,我得到一個「Date類型不匹配」 RealmException:
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
在第二LINQ查詢我希望得到一個列表中有1個項目(帶有Id 2的DogModel),但是會引發「日期類型不匹配」RealmException。
爲什麼會發生這種情況?有沒有辦法做到這一點?
可能最好將OwnerId存儲爲可空的長整型而不是複雜的Owner對象。然後檢查OwnerId是否爲空。 – akerra
這將是可能的,但它似乎是一種笨拙的解決方案。它應該只是工作,對吧?這似乎是一個錯誤... – Jonas