Entity Framework Ver 6 (Alpha, rc1) имеет нечто вроде пользовательских условных обозначений. Чтобы установить десятичную точность:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties().Configure(config => config.HasPrecision(18, 4));
}
Ссылка:
Две мысли:
(1) дефис можно было бы рассматривать как разрыв слова, Что они возвращают?
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA 300')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA300')
Посмотрите этот другой вопрос .
(2) Вы попытались восстановить свой полнотекстовый индекс? Возможно, что это устарело.
Оказывается, что я должен был восстановить свой полнотекстовый индекс. Спасибо за подсказки @MichaelGG и @JohnFx
Вы взглянули на свой шумовой файл слов? На моей машине это расположено здесь c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\noiseENG.txt
Один способ, которым Вы могли протестировать, это путем редактирования конкретного шумового файла только с одиночным пробелом так, чтобы это индексировало все, и попробуйте запрос снова. Я "протестировал" бы это в тестовой среде а не в производстве.
Можете Вы пробовать
SELECT * FROM Products WHERE CONTAINS(Keywords, ' "SA-300" ')
, я видел пример того, что Вы пытаетесь сделать на msdn.