Модель Entity Framework ASP.Net
-
23-08-2019 - |
Вопрос
Можно ли добавить в мою модель свойства, которых нет в базе данных?
Например, у меня есть таблица календаря, я хочу удалить эти данные в моем контроллере MVC, затем определить время, оставшееся до начала каждой записи, и вернуть их в представление.Поэтому я хотел бы, чтобы другое свойство в моей модели календаря содержало оставшееся время, а это значение, которое я буду генерировать вне базы данных.
Я попытался просто добавить свойство, но при этом получаю ошибки, поскольку свойство ни с чем не сопоставлено.
Возможно ли это вообще?
Спасибо
Решение
У вас должна быть возможность добавить свойство в модель, но вы не сможете запросить его с помощью LINQ.LINQ в конечном итоге создаст выражение, которое он захочет запустить в базе данных с помощью SQL.Именно в этот момент ваш LINQ не сможет найти сопоставление вашего свойства с каким-либо полем.
Если ваш запрос возвращает IEnumerable фактического типа, в котором вы создали свойство, ваше представление может иметь доступ к нему.Я не могу вспомнить, настаивает ли EF на сопоставлении в этом случае, возможно, так оно и есть.
Вы можете обнаружить, что можете создать последующий запрос LINQ, использующий LINQ-to-objects, если хотите предоставить вашему представлению какой-либо другой составной тип.
Другие советы
Это непостоянное или временное свойство.Я не очень хорошо знаю Entity Framwork, но с помощью быстрого поиска в Google вы должны найти ответ.
Кстати, здесь вы можете найти много советов:http://weblogs.asp.net/zeeshanhirani/archive/2008/12/18/my-christmas-present-to-the-entity-framework-community.aspx
После быстрого поиска и тестирования в VS2008 я не вижу способа исключить свойство из сопоставления.Может быть, вам потребуется вручную отредактировать файл сопоставления?:(