我想用一个从不同DataContext检索的记录更新一个LinqDataSource。问题是LinqDataSource的DataContext似乎没有被公开,所以我无法访问它以将新对象附加到DataSource的上下文。
这样做的正常方法是什么?或者我应该废弃LinqDataSource
答案 0 :(得分:1)
有充分理由 - 您无法在不同的DataContexts之间共享对象。
如果您使用LinqDataSource的OnContextCreating事件,您可以将正确的实例附加到数据源[即,从中检索第二个实体的实例],因此它们都来自同一个DataContext:
ASPX:
<asp:LinqDataSource .... OnContextCreating="GetDataContext" ... />
C#:
protected void GetDataContext(object sender, LinqDataSourceContextEventArgs e)
{
e.ObjectInstance = MyDataContext.Current; // assuming that Current is the ambient instance
}