Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 在实体框架中卸载数据引用_Wcf_Entity Framework - Fatal编程技术网

Wcf 在实体框架中卸载数据引用

Wcf 在实体框架中卸载数据引用,wcf,entity-framework,Wcf,Entity Framework,目前,我正在努力解决实体框架问题。我有一个位于ef框架之上的wcf服务,它允许对框架进行查询。在某个时刻,用户可以从框架请求一个文件。这些文件由解决方案条目引用,因此当您从解决方案请求文件时,将加载引用以获得对文件存储的访问权限 这一切都很好,但从那时起,每当您执行另一个返回该解决方案条目的查询时,整个文件都会附加到返回结果。我需要某种分离或卸载引用的方法,这样结果条目将只包含对文件存储的卸载引用 我试图创建一个新的上下文并查询该上下文以从中检索信息,但当我这样做时,原始上下文中的实体也会发生更

目前,我正在努力解决实体框架问题。我有一个位于ef框架之上的wcf服务,它允许对框架进行查询。在某个时刻,用户可以从框架请求一个文件。这些文件由解决方案条目引用,因此当您从解决方案请求文件时,将加载引用以获得对文件存储的访问权限

这一切都很好,但从那时起,每当您执行另一个返回该解决方案条目的查询时,整个文件都会附加到返回结果。我需要某种分离或卸载引用的方法,这样结果条目将只包含对文件存储的卸载引用

我试图创建一个新的上下文并查询该上下文以从中检索信息,但当我这样做时,原始上下文中的实体也会发生更改

我尝试从原始上下文中分离实体,然后从新上下文中进行查询。这也行不通

我找到了一种方法。对于所有非文件下载查询,我分离结果实体,并通过网络发送。但我不确定这是否是最好的方式


我希望有人能够提供一些见解,感谢您的努力。

您遇到的问题可能是“更改跟踪”,默认情况下该选项处于启用状态

可能的解决方案:

使用禁用更改跟踪

如果上述解决方案不起作用,这可能有助于为您指明如何处理此问题的正确方向

我最近也遇到了类似的问题。问题是上下文维护了对我正在使用的对象的引用(显然)。每次我对同一类型的对象进行更改时,即使是使用新的上下文(我认为是这样)获得的对象也在更改

在我的一位同事的帮助下,我们确定,由于我在IoC容器中注册它的方式(每个web请求的生活方式),上下文一直存在。当我将生活方式更改为transient(它最终提供了一个新实例)时,对相同类型对象的更改不会受到影响


希望这会有所帮助。

您能否澄清您是如何托管WCF服务(自托管或IIS托管)的,并解释文件中包含的解决方案引用的含义(引用与文件的关系如何)。由于实体框架的原因,该网站是以IIS托管的,且引用与文件相关。这些文件位于单独的表中,但通过外部键链接到信息表。因此,要从信息表访问链接实体,必须加载文件引用。一旦延迟加载发生,您就无法卸载链接。您的意思是所有文件都在数据库中,并且您有文件的实体类型吗?如果是这样,当您说您已经尝试分离实体时,这是“解决方案”实体还是文件实体?后者应该有用。哈哈…老兄…不知道你在20多年前问了这个问题!我相信你现在已经解决了这个问题=)希望答案能帮助其他人。谢谢Rich。我一定会尝试一下。我想最后我还是坚持了问题中提到的“解决方案”,但这很可能教会我一些新东西D
using (MyEntities _context = new MyEntities())
{
    _context.Widgets.MergeOption = MergeOption.NoTracking;

    return _context.Widgets.ToList();

}