У меня есть следующие атрибуты, примененные к моему классу linq to sql:
[Document(MetadataType = typeof(SomeObjectMetadata))]
public partial class SomeObject
{
}
А это код метаданных:
public class SomeObjectMetadata
{
[Field(FieldIndex.Tokenized, FieldStore.Yes, IsKey = true)]
private object ProductId { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes, IsDefault = true)]
private object Name { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Description { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Breadcrumb { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab1Content { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab2Content { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab3Content { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab4Content { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab5Content { get; set; }
[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Manufacturer { get; set; }
}
Хранилище индексов пишет просто отлично, но когда я пытаюсь найти его, я получаю сообщение об ошибке, показанное в заголовке. Вот пример поиска:
var qry = from r in _dbi.Get<SomeObject>()
where r.Description.Like(search)
select r;
При перечислении «qry», исключение «Классы должны определять, по крайней мере, одно поле как поле поиска по умолчанию».