从单独的DataContext更新LinqDataSource

时间:2009-05-29 03:54:05

标签: .net linq-to-sql linqdatasource

我想用一个从不同DataContext检索的记录更新一个LinqDataSource。问题是LinqDataSource的DataContext似乎没有被公开,所以我无法访问它以将新对象附加到DataSource的上下文。

这样做的正常方法是什么?或者我应该废弃LinqDataSource

1 个答案:

答案 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
}