EntityFramework DbSet.Attach()+ OData QueryInterceptor

时间:2013-12-17 12:45:42

标签: entity-framework odata

我有QueryInterceptor的OData服务,我想将记录附加到当前的DBSet - 不应该在数据上下文中立即提供新附加的记录吗?

[QueryInterceptor("MyTable")]
public Expression<Func<MyTable, bool>> FilterMyTable()
{
    this.CurrentDataSource.MyTable.Attach(new MyTable()
    {
        PK = "1"
    });

    return p => p.PK == "1";
}

新的MyTable实体在此处理程序的this.CurrentDataSource.MyTable中不可用, 并且OData webservice也不会返回它。

只有这样才有效 - 使用“添加”代替“附加”​​,将更改保存到db,然后webservice从db返回记录。 webservice可以返回这样的新记录而不先将其保存到db吗?

1 个答案:

答案 0 :(得分:0)

MyTable将可从Datacontext获得 - 您无需附加。这应该有效:

[QueryInterceptor("MyTable")]
public Expression<Func<MyTable, bool>> FilterMyTable()
{
    return p => p.PK == "1";
}