2015-06-15 5 views
0

Возможно, это дубликат, но мне не удалось найти необходимый ответ.WCF. Создайте общий Servicecontract. Заполнение от клиента

На самом деле я пытаюсь создать общую оболочку для работы с Entity/L2Sql через wcf. Так что на стороне сервера:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
public class MyDbContext<TTable> : IMyDbContext<TTable> where TTable:class 
{ 
    private readonly DataContext _dbContext; 
    private readonly Table<Device> _table; 

    public MyDbContext() 
    { 
     _dbContext = new WCF_DataContext(connection); 
     _table = _dbContext.GetTable<TTable>(); 
    } 

    public void InsertOnSubmit(TTable table) 
    { 
     _table.InsertOnSubmit(table); 
    } 
    ...and the same stuff further... 
} 

и на стороне клиента я использую, как это

var client = new ServiceRef.MyDbContextClient<ServiceRef.PersonTable>(); 
client.GetData(); client.insertOnSubmit(); ...other stuff... 

Я понимаю, что WCF создан для универсального материала, на разных языках, и его естественным запретить прямой Т, но, возможно, есть способ приблизиться к этому с некоторыми атрибутами или описаниями (например, где T: DataContractAttribute, но это неверно).

Или, может быть, я начал думать, неправильный путь =)

Для некоторых ViewModels мне нужно один DbContext за ViewModel, вместо короткого использования (..dbcontext ..)

ответ