мы недавно обновились для использования ef core 2.1.8, и теперь некоторые из наших запросов не выполняются.
Что-то столь же простое, как предложение where, заставляет ef оценивать его локально.
Iу меня есть языковая таблица со столбцом имени, я хочу выбрать все, где имя не равно нулю, но ни одно из этих двух произведений:
var searchQuery = from q in context.Language
where (q.Name != null) select q;
var searchQuery = context.Language.Where(x => x.Name != null);
Оба оцениваются локально.Имя - это простая строка / столбец nvarchar.
Редактировать:
Язык - это частичный класс, который выглядит следующим образом:
public partial class Language
{
public Language()
{
Segmentation = new HashSet<Segmentation>();
SystemTranslation = new HashSet<SystemTranslation>();
}
public int Id { get; set; }
[Required]
[MaxLength(255)]
public string Culture { get; set; }
public ICollection<Segmentation> Segmentation { get; set; }
public ICollection<SystemTranslation> SystemTranslation { get; set; }
}
public partial class Language : IIdentifiable<int>, ISearchable
{
public string Name => CultureInfo.GetCultureInfo(Culture).DisplayName;
}
При следующей конфигурации:
void IEntityTypeConfiguration<EF.Entity.Core.Language>.Configure(EntityTypeBuilder<EF.Entity.Core.Language> builder)
{
builder.HasIndex(e => e.Culture)
.HasName("IX_Culture")
.IsUnique();
}