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 ..)