我正在遍历转发器并使用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();
}
答案 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
}