0

私はリピーターをループし、c#SqlCommandを使用してデータベースに更新クエリを実行しています

後で、新しく更新されたタイプのエンティティタイプが必要なときに使用します

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

SqlCommandを使用して更新されたフィールドがまだnullであるドキュメントを取得しましたが、dbを確認すると、フィールドの値は正しいです。

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();
                    }
4

1 に答える 1

3

適用するためにEFを介して変更を加えていないため、db.SaveChanges()は何もしません。あなたが行った変更はその範囲外です。db 変数をグローバルに宣言し、EF がデータをキャッシュしていると思います。代わりに、これを試してください:

using(somethingEntities db = new somethingEntities()){
  Document d = (from c in db.Documents where c.Id = myID select c).First();
  // do something here
}
于 2013-02-07T14:55:24.700 に答える