2013-01-17 78 views
0

的,我們試圖尋找其他計算器地方&但無法找到一個解決方案。RavenDB查詢與Object類型

我們有一個這樣的課。

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字段對象。所以當我用類型轉換進行查詢時,我期待它返回一些結果。糾正我,如果我錯了。

+0

'對象'沒有'AccountType'成員。您需要使用具有該成員的類型。 – Oded

+0

我添加了用於查詢的AccountInfoCustomer類型的類定義。這是作爲對象存儲的內容。所以當我用類型轉換進行查詢時,我期待它返回一些結果。 – Muthu

+0

這沒有幫助。您通過'UserAccountInfo'顯示一個不包含'AccountType'或'User'屬性的查詢。您提供的代碼不會編譯。您一定沒有正確粘貼UserAccountInfo。如果我們看不到問題,我們無能爲力。 –

回答

0

如果你在你的實體對象,您無法查詢使用LINQ。 您可以查詢使用LuceneQuery和無類型語法。