2016-03-05 3 views
0

Мне очень жаль этот глупый вопрос, но у меня есть проблема и не знаю, как его решить. У меня есть база данных с несколькими таблицами с одинаковой структурой. Я использовал базу данных Entity Framework - сначала в этой базе данных. Теперь у меня есть несколько объектов. Например,Entity Framework те же субъекты

public partial class Entity1 
    { 
     public int ID {get;set;} 
     public string Name {get;set;} 
     public bool Flag {get;set;} 
    } 

    public partial class Entity2 
    { 
     public int ID {get;set;} 
     public string Name {get;set;} 
     public bool Flag {get;set;} 
    } 

... 

Мне нужно использовать WCF для транспортировки этих объектов. Таким образом, я создаю datacontract как это сущности. А теперь я хочу, чтобы создать конкретный метод обновления как ниже:

public void update(EntityContract contract) 
{ 
    entity = //some method to get Entity from database by ID 
    bool needUpdate = false; 
    if(!contract.Name.Equals(entity.Name)) 
    { 
     entity.Name = contract.Name; 
     needUpdate = true; 
    } 
    ... use this codeblock for enother properties 
    if(needUpdate) 
    { 
     //update entity 
    } 
} 

Есть ли способ, чтобы создать один метод для всех субъектов с этой структурой?

Спасибо за любой совет.

ответ

1

Внедрить интерфейс:

public interface ICommonEntity 
{ 
    int ID {get;set;} 
    string Name {get;set;} 
    bool Flag {get;set;} 
} 

применить его к лицам:

public partial class Entity1 : ICommonEntity {} 
public partial class Entity2 : ICommonEntity {} 

сделать свой "какой-то метод, чтобы получить Entity из базы данных по идентификатору" возвращает этот интерфейс:

public ICommonEntity GetFromDatabase(...); 

Тогда вам нужен только один метод для всех типов сущностей.

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