使用Object类型的RavenDB查询

时间:2013-01-17 14:20:31

标签: c# .net ravendb

我们尝试过搜索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字段中存储为对象的类型。因此,当我使用类型转换进行查询时,我希望它返回一些结果。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

如果您的实体中有对象,则无法使用linq进行查询。 可以使用LuceneQuery和无类型语法进行查询。