В базе данных моей У меня есть таблица с именем «Сайт», который содержит столбец «Сайт» (пожалуйста, не спрашивайте, почему :))Entity Framework базы данных, такой же таблицы и имя столбца отображение
Я использую первый подход к базе данных. После обновления модели из базы данных У меня есть объект «Site» со свойством «site1»
public partial class Site
{
...
public string Site1 { get; set; }
...
}
Это прекрасно работает, пока не начало использование метода SQLQuery с простым выбором:
context.Site.SqlQuery("SELECT * FROM dbo.Site WHERE SiteID IN(2,1)").ToArray();
В результате этого I получить ошибку: «Устройство чтения данных несовместимо с указанным« aapModel.Site ». Элемент типа «Site1» не имеет соответствующего столбца в считывателе данных с тем же именем ».
Я нашел одно решение, чтобы изменить имя столбца в запросе:
context.Site.SqlQuery("SELECT Site as Site1 FROM dbo.Site WHERE SiteID IN(2,1)").ToArray();
Но это не гибкий и элегантный. Есть ли способ сказать структуру сущности не изменять имена столбцов при генерации модели из базы данных?
Попробуйте изменить имя вручную: http://stackoverflow.com/questions/20780489/ef-database-first-rename-entity-table-name –
К сожалению: имя Сайта не может быть дублировано в этом контексте. Выберите другое имя. – Mikhail
Я думаю, что нет никакого способа сделать это. При использовании SqlQuery вы должны знать имя свойства (в типе сущности) и имя столбца (в таблице базы данных). Вот почему нам редко приходится использовать SqlQuery. – Hopeless