linq-To-SQL没有获得更新的数据库数据

时间:2013-02-07 14:48:41

标签: c# linq-to-sql

我正在遍历转发器并使用c#SqlCommand向我的数据库发送更新查询

稍后当我想要新更新类型的实体类型时我会使用

Document d = (from c in db.Documents where c.Id = myID select c).First();

我得到一个文档,其中使用SqlCommand更新的字段仍然为空,但是当我检查数据库时,字段具有正确的值。

有没有办法从SqlCommand命令获取实体类型,或确保Linq-To-Sql获取更新数据。

我在尝试之前尝试运行db.savechanges(),但没有区别。

编辑:

SqlCommand command = getCommand(type, field, item, nDocID, required); // commandText = "UPDATE Documents SET " + field + "=@" + field + " WHERE DocumentID = " + id; "



                    if (command != null)
                    {
                        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString);

                        command.Connection = conn;
                        conn.Open();
                        command.ExecuteNonQuery();
                        conn.Close();
                    }

1 个答案:

答案 0 :(得分:3)

db.SaveChanges()不会执行任何操作,因为您没有通过EF进行任何更改来应用。您所做的更改超出了其范围。我猜你是全局声明你的db变量而EF是缓存数据。相反,尝试这样做:

using(somethingEntities db = new somethingEntities()){
  Document d = (from c in db.Documents where c.Id = myID select c).First();
  // do something here
}