Объединение 2 моделей в 1 модель в MVC - PullRequest
1 голос
/ 11 октября 2011

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

Скажите, у меня есть эти модели.

public abstract class Member
{
   public string ID { get; set; }
   public string Username { get; set; }
   public int  MemberType { get; set; } //1 if person; 2 if business
   //public string MemberName { get; set; } 
}

public class Person : Member
{
   public string LastName { get; set; }
   public string FirstName{ get; set; }
}

public class Business : Member
{
   public string BusinessName { get; set; }
   public string TaxNo { get; set; }
}

Прямо сейчас у меня нет проблем с доступом к этим моделям с использованием свободного API.

Теперь я хочу добавить в свой класс Member свойство, которое будет MemberName, которое будет производным от свойства LastName и FirstName класса Person, если MemberType равен 1, и BusinessName бизнес-класса, если MemberTYpe = 2.

Есть ли простой способ добиться такого рода вещей?

Спасибо

1 Ответ

3 голосов
/ 11 октября 2011

Это может быть сделано с небольшим количеством abstract волшебства.

На Member есть это:

public abstract string MemberName { get; } 

Затем на Person вы переопределяете как:

public override string MemberName
{
   get{ return FirstName + " " + LastName; }
}

на Business вы переопределяете так:

public override string MemberName
{
   get{ return BusinessName; }
}

Теперь любой экземпляр любого класса, который наследует Member, при вызове свойства MemberName вернет правильное представление. Это все базовое наследование / ООП / Полиморфизм, как вы хотите это назвать.

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