2015-06-15 105 views
0

也許它是重複的,但我無法成功找到需要的答案。WCF。創建通用服務合同。從客戶端填充

其實我試圖建立通用包裝以便通過wcf與Entity/L2Sql一起工作。因此,在服務器端:

[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,而不是短期使用(..dbcontext ..)

回答