Вопрос

Можно ли добавить в мою модель свойства, которых нет в базе данных?

Например, у меня есть таблица календаря, я хочу удалить эти данные в моем контроллере 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 я не вижу способа исключить свойство из сопоставления.Может быть, вам потребуется вручную отредактировать файл сопоставления?:(

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top