none
使用linq进行数据更新的一点疑惑 RRS feed

  • 问题

  • 举个例子说明吧:Category 中只有两个属性id ,Name
        private static void TestUpdate()
            {
                Category categoryFinance = dataContext.Categories.Single(c => c.Name == "财经快报");
                categoryFinance.Name = "财经新闻";
                dataContext.SubmitChanges();
               //上面代码可以正常执行,但是如果我这样就不行了:
               Category categoryFinance  = new Category ();
               categoryFinance.id = 3;
        categoryFinance.Name = "财经新闻";
           dataContext.SubmitChanges();//这样反而更新不了数据
            //,更改的时候:必须根据一定的条件将一个对象查询出来,再一一设置属性的值,然后调用SubmitChanges()方法才能更新该对象,否则即使一一为一个对象所有属性设值,最后调用相应实例的更新方法也不会更新成功,跟hibernate好不一样,不知道微软为什么要这么做,多查询一次数据库岂不是浪费资源?还是说它要确认下数据库中确实有这条记录?
            }

    2009年12月19日 14:15

答案

  • 你这个方式有个问题是第一个和实体类依赖的一个实例化类型的指针   你那第二个是个独立实例化类型 跟实体一点关系没有 你怎么更新它呢

    2009年12月20日 9:13