如何清除LINQ的DataContext的缓存到SQL
答案:2 悬赏:10 手机版
解决时间 2021-03-11 15:04
- 提问者网友:温旧梦泪无声
- 2021-03-10 17:31
如何清除LINQ的DataContext的缓存到SQL
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-03-10 17:46
如果要刷新一个特定的对象,那么的刷新可能是你最好的选择()方法。
这样的:
Context.Refresh(RefreshMode.OverwriteCurrentValues,objectToRefresh);
您还可以通过对象的数组或一个IEnumerable作为第二个参数,如果你需要刷新更多比一次一个对象。
更新
我看到你在评论中说些什么,在反射器可以看到里面.REFRESH()这种情况发生:
对象objectByKey = context.Services.GetObjectByKey(trackedObject.Type,键值) ;
如果(objectByKey == NULL)
{
掷Error.RefreshOfDeletedObject();
}
您链接的方法似乎是您最好的选择,DataContext类没有按' ŧ提供任何其他的方式来清除已删除的行。处置检查,如在 ClearCache()方法内......这真的只是检查处理,并要求 ResetServices()在 CommonDataServices underneath..the只有不良效果将清除任何未决的插入,更新或删除您已经排队。
还有一个选项,你可以火起来的另一个DataContext的为你做什么操作?它不会有任何缓存,它...但也不涉及一些计算成本,所以如果挂起的插入,更新和删除都没有问题,我会用 ClearCache坚持() 方法。
这样的:
Context.Refresh(RefreshMode.OverwriteCurrentValues,objectToRefresh);
您还可以通过对象的数组或一个IEnumerable作为第二个参数,如果你需要刷新更多比一次一个对象。
更新
我看到你在评论中说些什么,在反射器可以看到里面.REFRESH()这种情况发生:
对象objectByKey = context.Services.GetObjectByKey(trackedObject.Type,键值) ;
如果(objectByKey == NULL)
{
掷Error.RefreshOfDeletedObject();
}
您链接的方法似乎是您最好的选择,DataContext类没有按' ŧ提供任何其他的方式来清除已删除的行。处置检查,如在 ClearCache()方法内......这真的只是检查处理,并要求 ResetServices()在 CommonDataServices underneath..the只有不良效果将清除任何未决的插入,更新或删除您已经排队。
还有一个选项,你可以火起来的另一个DataContext的为你做什么操作?它不会有任何缓存,它...但也不涉及一些计算成本,所以如果挂起的插入,更新和删除都没有问题,我会用 ClearCache坚持() 方法。
全部回答
- 1楼网友:毛毛
- 2021-03-10 18:11
假设你的三个表全部都已经linq化(生成了对应的类,此类的datacontext叫做dbdatacontext):
using (dbdatacontext dbc = new dbdatacontext()) { var result = from t1 in dbc.table1 from t2 in dbc.table2 from t3 in dbc.table3 where (t1.autoid=22 && t1.parentid=t2.autoid && t2.parentid=t3.autoid) select new { t1id = t1.autoid, t1tn = t1.typename, t2id = t2.autoid, t2tn = t2.typename, t3id = t3.autoid, t3tn = t3.typename
}; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯