Raven db で次のように、ドキュメントに格納されているオブジェクトから値をクエリまたは取得する方法について疑問があります。
class User
{
public String Id { get; set; }
public AccountType AccountType { get; set; }Servicetax
public String MainAccountMobileNo { get; set; }
public UserStatus Status { get; set; }
public String EmailId { get; set; }
public String DisplayName { get; set; }
public Object User { get; set; }
}
ここでは、3 つの異なるタイプのクラスをオブジェクト User に格納しています。顧客、小売業者、トレーダーと言ってください。
Customer
{
public String Name{ get; set; }
public String Address { get; set; }
public String MobileNo { get; set; }
public String EmailId { get; set; }
}
小売業者
{
public String Name{ get; set; }
public String Address { get; set; }
public String MobileNo { get; set; }
public String EmailId { get; set; }
}
トレーダー
{
public String Name{ get; set; }
public String Address { get; set; }
public String MobileNo { get; set; }
public String EmailId { get; set; }
}
顧客のクラスの詳細に基づいて結果を取得することは可能ですか? これで、顧客クラスの住所に基づいてすべての顧客を取得したいのですが、どうすればよいでしょうか? クエリでオブジェクト user を typecast して customer と入力する方法。ありがとう。
ドキュメント内のユーザー オブジェクトは、上の画像の account info trader のように、任意のタイプのクラスのオブジェクトを格納できます。では、明確で変化することができないオブジェクトタイプからどのようにクエリを実行できますか。
var Result = sess.Query<UserAccountInfo>().Where(x => x.AccountType == usertype && ((AccountInfoCustomer)x.User).Customerstatus == CustomerStatus.Pending);
これは試行されたクエリであり、キャッチされた例外です {"Url: \"/indexes/dynamic/UserAccountInfos?query=AccountType%253ADistributor%2520AND%2520User).Customerstatus%253APending&start=0&pageSize=128&aggregation=None\" \r\n\r\nSystem.ArgumentException: フィールド ')_Customerstatus' はインデックス化されていません。インデックス化されていないフィールドに対してクエリを実行できません\r\n Raven.Database.Indexing.Index.IndexQueryOperation.AssertQueryDoesNotContainFieldsThatAreNotIndexes() で