0

stackoverflowやその他の場所を検索しようとしましたが、解決策が見つかりませんでした。

こんなクラスがあります。

class UserAccountInfo
{
   public String someid;
   public Object needtoqueryobject; //This can store different object types like AccountInfoCustomer, AccountInfoFriend etc.,
}

このクラスを次のようにクエリします。

var Result = sess.Query<UserAccountInfo>().Where(x => ((AccountInfoCustomer)x.needtoqueryobject).AccountType == usertype);   

ただし、これはサポートされておらず、インデックス付けされていないフィールドでクエリを実行できないと表示されます。RavenDBは実際のタイプを理解していないため、この特定のタイプにインデックスを付けることができないことを理解できます。これらのクラスにもインデックスが付けられていることを確認する方法を誰かが説明できますか?

AccountInfoCustomerタイプ定義を追加しました:

using System;

namespace Dheutto.Models
{
public enum AccountTypes
    {
        Customer,
        Trader,
        Distributor
    }

    public class AccountInfoCustomer
    {
        //The AccountNumber for the document
        public String FirstName { get; set; }
        public String MiddleName { get; set; }
        public String LastName { get; set; }
        public String Father_spouse_Name { get; set; }
    public AccountTypes AccountType{ get; set; }
    }
}

このAccountInfoCustomerタイプは、needtoqueryobjectフィールドにオブジェクトとして格納されるものです。したがって、型キャストを使用してクエリを実行すると、何らかの結果が返されることを期待しています。私が間違っている場合は私を訂正してください。

4

1 に答える 1

0

エンティティにオブジェクトがある場合、linq を使用してそれを照会することはできません。LuceneQuery と型指定されていない構文を使用してクエリを実行できます。

于 2013-01-21T15:09:01.000 に答える