Следующий код выдает исключение « EntitySqlException:« Группа »является зарезервированным ключевым словом и не может использоваться в качестве псевдонима, если не экранирован. Рядом со строкой 1, столбец 11 ».
Мой вопрос, во-первых, почему существует какое-либо отношение между именем коллекции, которое я выбираю в контексте данных, и, смотри, сгенерированный SQL-запрос?
И во-вторых, могу ли я что-то сделать, кроме переименования свойства в моем контексте, чтобы разрешить его (я знаю, что имя глупое, есть причины, по которым я не могу изменить имя, как бы мне этого ни хотелось, Я не буду вдаваться здесь)?
Могу ли я что-нибудь сделать с моделью Builder?
public class GroupEntity
{
public int GroupEntityId { get; set; }
public string Name { get; set; }
}
public class MyContext : DbContext
{
public MyContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Group = Set<GroupEntity>();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<GroupEntity>().ToTable("GroupEntities");
base.OnModelCreating(modelBuilder);
}
public DbSet<GroupEntity> Group { get; private set; }
}
//...
using (var ctx = new MyContext("valid connection string"))
{
var e = ctx.Group.Count(a => a.GroupEntityId % 2 == 0);
// Exception thrown here
Console.WriteLine(e);
}