Как квалифицировать объекты в 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
    {
        //
    }
}
Другие вопросы по тегам