Динамические свойства модели базы данных mvc asp.net - PullRequest
0 голосов
/ 13 сентября 2010

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

Например, у меня есть таблица UserInformation.В этой таблице содержится основная информация о пользователе (ну, например, имя пользователя, адрес, адрес и т. Д. И т. Д.). Я хочу добавить свойство только для чтения, объединяющее имя пользователя, адрес и номер телефона в одну строку, которую можно вывести вПосмотреть.Любые идеи о том, как я бы пошел о создании этого динамического свойства.Это простой пример, я хочу сделать несколько более сложных вычислений и конкатенаций.

Спасибо

1 Ответ

1 голос
/ 13 сентября 2010

Есть несколько способов сделать это. Я верю, что классы, которые отображаются в таблицы базы данных, должны оставаться «чистыми» и содержать только свойства, которые отражают фактические поля в базе данных, но в любом случае процесс похож.

Вы можете создать класс модели, который содержит необходимую информацию для отображения в представлении:

public ViewResult Details(int id)
{
    UserInformation info = ... // get the information object from the database

    UserInformationModel model = new UserInformationModel {
        Id = info.Id,
        Details = String.Join(" ", new[] { info.Name, info.Address, info.PhoneNumber }) );
    }

    return View(model);
}

Альтернатива, если вы хотите добавить его к объекту с привязкой к данным:

public class UserInformation
{
    ...
    public string Details
    {
        get
        {
             return String.Join(" ", new[] { info.Name, info.Address, info.PhoneNumber });
        }
    } 
    ....
}

А затем передать весь объект данных в представление вместо конкретной модели.

...