Подтвердить что ты не робот

Добавление настраиваемого свойства в инфраструктуру Entity?

Я использую Entity Framework в первый раз и хочу знать, возможно ли следующее: я сгенерировал свои классы из БД и назвал категорию.

Очевидно, что он имеет все мои поля в таблице (ID, CategoryName, SortOrder и т.д.), но я хочу знать, могу ли я добавить настраиваемое свойство, которого нет в таблице, но на самом деле это результат пользовательского метода.

Я хочу добавить новое свойство под названием "CategoryURL", которое в основном является свойством "CategoryName", запускаемым через собственный метод и возвращает строку с переносом.

Моя первоначальная мысль наследуется от созданного класса Category и создает что-то вроде этого внутри?

public string CategoryURL 
{
    get{ return MyCustomMethod(this.CategoryName) }
}

Это правильный подход? И будет ли это. CategoryName работать так, как мне кажется? В основном конечный результат - когда я возвращаю список "Категория", я хочу, чтобы это было частью класса, поэтому я могу использовать его в моем цикле foreach.

Надеюсь, это имеет смысл?

4b9b3361

Ответ 1

вы должны использовать класс partial:

public partial class Category
{
    public string CategoryURL  
    { 
        get{ return MyCustomMethod(this.CategoryName); } 
    } 
}

Этот способ this.CategoryName будет работать так, как ожидалось.

Это работает, потому что классы, генерируемые генератором кода фреймворка сущности, также генерируют классы partial. Это также означает, что вы можете безопасно перегенерировать классы из базы данных, не затрагивая частичные классы, которые вы сами определили.

Ответ 2

Вы должны добавить атрибут [NotMapped] к свойству