Как квалифицировать объекты в EF 6
Моя проблема с моим веб-сайтом, использующим WebPages, Entity Framework 6.1.3, C# и базу данных SQL CE. Один из моих сгенерированных типов объектов "сначала в базе данных" назван точно так же, как и класс system.TimeZone, но intellisense и IDE неправильно обрабатывают / обрабатывают конфликт имен.
Мой вопрос заключается в том, как мне полностью квалифицировать имя объекта в коде (используя EF 6.1.3, контекст объекта), чтобы предотвратить конфликт имен с классами системы.
У меня есть реализация EF существующей таблицы БД. Таблица была названа "Часовые пояса". Модель сущности была сгенерирована с использованием базы данных в первую очередь.
Правила плюрализации EF переводят имя таблицы в объект с именем "TimeZone".
Проблема в том, что когда я пытаюсь создать новую сущность TimeZone, intellisense думает, что я пытаюсь обновить класс System.TimeZone, поскольку все точечные ссылки на мой новый экземпляр TimeZOne относятся к свойствам и методам System.TimeZone. учебный класс. Я ожидал увидеть свойства объекта TimeZOne моей модели сущностей.
Я ожидал, что смогу полностью квалифицировать мою сущность TimeZone с пространством имен или включить пространство имен моей модели в оператор использования в верхней части моего кода. Однако "пространство имен", которое мне предоставляют свойства модели EF 6.1.3, не является истинным пространством имен. EF был сгенерирован из существующей базы данных.
1 ответ
Сделайте ваш путь к классу сущностей явным, когда вы объявите его объект:
MyApplication.Entities.TimeZone tz = new MyApplication.Entities.TimeZone();
или просто:
var tz = new MyApplication.Entities.TimeZone();
Вашему классу сущностей должно предшествовать что-то вроде этого:
namespace MyApplication.Entities
{
public class Person
{
//
}
}