Вы имеете в виду, что у вас есть таблица с различными значениями, хранящимися в ней, и зависит от значения, которое вы хотите вернуть различным объектам?
например. у вас есть стол домашнее животное
id type name
---------------------
1 dog bello
2 cat scott
3 cat tiger
и вы хотите получить от него предметы собаки и кошки?
У меня есть аналогичный случай, и я решил его, создав класс Dog и класс Cat, которые наследуются от автогенерированного класса домашних животных дозвукового класса и реализуют мой заглушку интерфейса IPet в сочетании с заводским методом, где я отбрасываю свои объекты на новый Тип:
public Class Dog : Pet, IPet { }
public Class Cat : Pet, IPet { }
public Interface IPet { }
public static IPet GetAllPets()
{
List<IPet> pets = new List<IPet>();
foreach Pet pet in PetCollection.FetchAll()
{
IPet newpet;
if (pet.Type == "dog")
newpet = new Dog();
else if (pet.Type == "cat")
newpet = new Cat();
else throw new InvalidOperationException("Unknown pet type " + pet.Type);
pet.CopyTo(newpet);
newpet.MarkOld();
pets.Add(newpet);
}
}
Напечатано в памяти, не гарантируется скомпилировать. Но теория должна быть ясной.
Я немного изменил пример, потому что он не сработает (вы можете бросить собаку как домашнее животное, но не домашнее животное собаке). –