Я работаю с Entity Framework Core, v6.2.Я получаю сообщение об ошибке
SqlException: недопустимое имя объекта 'Cdef.CellDefinition'
при попытке доступа к DbSet
напрямую, но с использованием того же DbContext
объект, я могу запросить объект напрямую, используя команду FromSql
.
Я видел другие ответы, в которых говорилось об изменении соглашений для удаления PluralizingTableNameConvention
, однако, поскольку я делаю EntityFrameworkCore.DbContext
, у ModelBuilder
такой опции нет, и я не вижу никакихдоказательство того, что это попытка получить доступ к множественному имени.
Моя сущность настроена так:
[Table("Cdef.CellDefinition")]
public partial class CellDefinition
{
[Key]
public int Id { get; set; }
}
А моя DbContext
имеет вид:
public class CDefContext : Microsoft.EntityFrameworkCore.DbContext
{
public virtual Microsoft.EntityFrameworkCore.DbSet<CellDefinition> CellDefinition { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
Когда яПопытка получить доступ к объекту как к объекту напрямую, я получаю сообщение об ошибке:
Неверное имя объекта
, но если я выдаю SQL с тем же именем объекта, он работает правильно.
// This fails with Invalid Object Name
return cDefContext.CellDefinition.ToList();
// This succeeds
return cDefContext.CellDefinition.FromSql("select * from CDef.CellDefinition").ToList()