在大多数情况下,我对Entity Framework的Proxy对象感到满意,但在某些情况下(JSON序列化),我无法使用EF创建的代理对象。
将DbContext.ProxyCreationEnabled
设置为false,然后返回true是否安全?如果在未代理查询运行时发生另一个查询怎么办?
我目前正在使用此功能,它可以正常工作,但我觉得我不能安全地执行此操作。
public async Task<T> NoProxyAsync<T>(Func<MyDbContext, Task<T>> func)
{
var proxyCreationEnabled = Configuration.ProxyCreationEnabled;
try
{
Configuration.ProxyCreationEnabled = false;
return await func(this);
}
finally
{
Configuration.ProxyCreationEnabled = proxyCreationEnabled;
}
}