首页 新闻 会员 周边

EF Core 1.0 提交修改问题

0
悬赏园豆:200 [已解决问题] 解决于 2017-03-19 19:46
 1 viewmodel.content.Hits += 1;
 2 _context.Update(viewmodel.content);
 3 await _context.SaveChangesAsync();
 4 if (languageid == 1)
 5 {
 6     viewmodel.content.ContentName = "英文名称";
 7 }
 8 if (languageid == 2)
 9 {
10     viewmodel.content.ContentName = "中文名称";
11 }
12 View(viewmodel);

以上代码提交修改时有时正常
有时又会把 SaveChangesAsync 之后的变动也保存到数据库,不知道要怎么控制 谁有这方面的测试过吗

问题补充:

cacheKey = string.Format("content{0}", id);
if (!_memoryCache.TryGetValue(cacheKey, out viewmodel.content))
{
viewmodel.content = await _context.Contents.SingleOrDefaultAsync(c => c.ContentId == id);
if (viewmodel.content != null)
{
//是否启动缓存
if (_appSettings.CacheDbResults)
{
_memoryCache.Set(
cacheKey,
viewmodel.content,
new MemoryCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromMinutes(10))
.SetPriority(CacheItemPriority.Low));
//_memoryCache.Set(cachekey, contents, TimeSpan.FromMinutes(1));
}
}
}有用到缓存

weisp的主页 weisp | 初学一级 | 园豆:3
提问于:2016-07-08 22:39
< >
分享
最佳答案
0

1._context 是不是共享的。不要做成共享的。

2.viewmodel.content 缓存的时候,不要缓存entity,因为带着 状态跟踪。缓存 poco

3.iewmodel.content.ContentName = "中文名称"; 11 } 。返回到view上请使用poco。

以上,能避免乱用导致的sb问题

收获园豆:200
czd890 | 专家六级 |园豆:14412 | 2016-07-14 11:42

不要缓存entity?缓存 poco?  poco是什么

weisp | 园豆:3 (初学一级) | 2016-09-10 15:33

@DotNet-fans: 

poco 指不带状态跟踪的实体

czd890 | 园豆:14412 (专家六级) | 2016-09-12 11:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册