EntityFramework中修改了数据为什么数据库中没有修改?

云谁之殇 2018-01-17 04:01:51
 
static void UpdateDataTest()
{
using (var data = new testEntities())
{
var obj = data.testTable.FirstOrDefault(x => x.testId == 1);
if (obj!=null)
{
obj.testText = "FirstOrDefault";
}
data.SaveChanges();
}
}

如上代码,已经修改了数据,为什么数据库中的数据还是没有变化呢?
...全文
1766 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
就是个菜鸟 2018-03-13
  • 打赏
  • 举报
回复
没有设置修改状态。
JimCarter 2018-03-09
  • 打赏
  • 举报
回复
你把这个页面关了再打开
qq_41808298 2018-03-08
  • 打赏
  • 举报
回复
代码没问题。调试下
  • 打赏
  • 举报
回复
引用 楼主 u013919157 的回复:
 
static void UpdateDataTest()
        {
            using (var data = new testEntities())
            {
                var obj = data.testTable.FirstOrDefault(x => x.testId == 1);
                if (obj!=null)
                {
                    obj.testText = "FirstOrDefault";
                }
                data.SaveChanges();
            }
        }
如上代码,已经修改了数据,为什么数据库中的数据还是没有变化呢?
首先判断一下自己到底有没有刷新查询结果界面?
驯鹿的熊猫人 2018-02-23
  • 打赏
  • 举报
回复
把查询出来的数据不要放入var 中 放入查询的testTable表中 再修改
grady.lu 2018-02-22
  • 打赏
  • 举报
回复
首先确认一下楼主是用的mysql数据库吗?如果是,你使用的是.net connector版本是多少? 一般情况一下:sql server不会存在这种情况,mysql有些版本有这样的情况出现。
云谁之殇 2018-01-25
  • 打赏
  • 举报
回复
引用 8 楼 yaotomo 的回复:
SaveChanges() 返回值是否是1?
返回值是等于1
云谁之殇 2018-01-25
  • 打赏
  • 举报
回复
引用 5 楼 hanjun0612 的回复:
[quote=引用 3 楼 u013919157 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] 这个问题挺广泛的。。 1 连接字符串是不是错了,连到别的库了。 2 断点调试 obj是不是等于Null。我不确定你的testId是不是int类型。 3 方法到底运行了没有
调试运行都是正确的,在修改之后运行下面方法,可以看到数据已经修改,但是在数据库中的数据还是没有改变。

 static void SelectTable()
        {
            using (var data = new testEntities())
            {
                foreach (var obj in data.testTable)
                {
                    Console.WriteLine("{0}\t{1}", obj.testId, obj.testText);
                }
            }
        }
运行结果是: [/quote] 不应该啊。你是不是查错库了? [/quote] 没有查错数据库
云谁之殇 2018-01-25
  • 打赏
  • 举报
回复
引用 7 楼 bjgzxx 的回复:
你要看看你的update语句执行了吗 正确吗?
执行正确了
yaotomo 2018-01-24
  • 打赏
  • 举报
回复
SaveChanges() 返回值是否是1?
早起晚睡 2018-01-21
  • 打赏
  • 举报
回复
你要看看你的update语句执行了吗 正确吗?
传说之心 2018-01-20
  • 打赏
  • 举报
回复
很多数据库有自己的缓存机制,比如oracle和mysql,sqlserver应该也有,这个不用慌,反正你查询出来的数据是对的就好了
正怒月神 2018-01-18
  • 打赏
  • 举报
回复
引用 3 楼 u013919157 的回复:
[quote=引用 1 楼 hanjun0612 的回复:] 这个问题挺广泛的。。 1 连接字符串是不是错了,连到别的库了。 2 断点调试 obj是不是等于Null。我不确定你的testId是不是int类型。 3 方法到底运行了没有
调试运行都是正确的,在修改之后运行下面方法,可以看到数据已经修改,但是在数据库中的数据还是没有改变。

 static void SelectTable()
        {
            using (var data = new testEntities())
            {
                foreach (var obj in data.testTable)
                {
                    Console.WriteLine("{0}\t{1}", obj.testId, obj.testText);
                }
            }
        }
运行结果是: [/quote] 不应该啊。你是不是查错库了?
云谁之殇 2018-01-18
  • 打赏
  • 举报
回复
引用 2 楼 daixf_csdn 的回复:
代码没问题。调试下
调试运行都是正确的,在修改之后运行上面方法,可以看到数据已经修改,但是在数据库中的数据还是没有改变。
云谁之殇 2018-01-18
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
这个问题挺广泛的。。
1 连接字符串是不是错了,连到别的库了。
2 断点调试 obj是不是等于Null。我不确定你的testId是不是int类型。
3 方法到底运行了没有


调试运行都是正确的,在修改之后运行下面方法,可以看到数据已经修改,但是在数据库中的数据还是没有改变。

static void SelectTable()
{
using (var data = new testEntities())
{
foreach (var obj in data.testTable)
{
Console.WriteLine("{0}\t{1}", obj.testId, obj.testText);
}
}
}


运行结果是:
圣殿骑士18 2018-01-17
  • 打赏
  • 举报
回复
代码没问题。调试下
正怒月神 2018-01-17
  • 打赏
  • 举报
回复
这个问题挺广泛的。。 1 连接字符串是不是错了,连到别的库了。 2 断点调试 obj是不是等于Null。我不确定你的testId是不是int类型。 3 方法到底运行了没有

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧