2012-07-24 5 views
1

У меня три таблицы с одинаковой структурой. Я использую структуру сущности. Я хочу создать универсальную функцию, которая принимает только три типа классов. но я не могу указать более одного типа в параметре типа. Там в любом случае? или я хочу добавить только базовый класс, как создать базовый класс, потому что они генерируются из сущностей?Entity Framework - Как создать базовый класс для класса сущности?

ответ

4

Самый простой способ, вероятно, не использовать базовый класс, а использовать интерфейс. Давайте предположим, что общее свойство string Name, то вы могли бы сделать

interface IEntityWithName 
{ 
    string Name { get; set; } 
} 

// make sure this is in the same namespace and has the same name as the generated class 
partial class YourEntity1 : IEntityWithName 
{ 
} 

// ditto 
partial class YourEntity2 : IEntityWithName 
{ 
} 

public void DoSomething<T>(T entity) 
    // if you have no common base class 
    where entity : class, IEntityWithName 
    // or if you do have a common base class 
    where entity : EntityObject, IEntityWithName 
{ 
    MessageBox.Show(entity.Name); 
} 

Что именно можно зависит от того, как формируются ваши классы сущностей, и на то, что вы хотите сделать в вашей процедуре. Если вы не можете понять, как адаптировать это к вашей ситуации, не могли бы вы дать больше информации о том, что вы пытаетесь сделать?

+0

Он отлично работает. Благодарю. Я хочу отправить список объектов класса. Как это сделать? – user1548293

+0

Если у ваших объектов все одинаковые типы, вы можете использовать 'public void DoSomething (список объектов), где ...', в противном случае вы можете использовать 'public void DoSomething (List сущности)' – hvd

+0

Спасибо !. . Оно работает. – user1548293

Смежные вопросы