В вашем BaseContact (предположим, что это абстрактный класс) добавьте абстрактное свойство, которое будет реализовано двумя другими классами. Используйте Enum для идентификации типа свойства следующим образом.
public enum MyType
{
Person,
Company,
};
public abstract class BaseContact{
public abstract MyType ContactType{get;}
}
public class Person:BaseContact
{
public override MyType ContactType
{
get
{
return MyType.Person;
}
}
}
public class Company:BaseContact
{
public override MyType ContactType
{
get
{
return MyType.Company;
}
}
}
Используйте свой репозиторий BaseContact дляизвлекайте сущности и используйте enum для разделения типов.