0
データをテーブルに挿入するストアドプロシージャがあります。私は.Find
のストアドプロシージャステートメントの直後に照会して、挿入が行われたかどうかを確認し、nullを返します。後で別のDbContext
で照会すると、それがあるので、あたかもコンテキストをリフレッシュする必要があるかのようです。Entity Framework:Findはストアドプロシージャの後にnullを返します。
いくつかのサンプルコード:
string name = "Awesome book";
string id = Guid.NewGuid().ToString();
// Entity Framework context
BooksDb db = new BooksDb();
// call to stored procedure
db.insert_book(id, name);
// check if it's there
book b = db.books.Find(id); // b is null
は私が私が探しているIDを持つアイテムを見つけるために得るために何かをリフレッシュする必要がありますか?
更新:私は以下のコメントのおかげでそれを理解しました。実際に私が挿入していると思っていたIDを探していましたが、ストアドプロシージャには自動IDが作成されていました。だから基本的に私は存在しなかったものを照会していました。 :)
SPを表示してどのように呼び出すのですか – octavioccl
spの後にSaveChangesを呼び出して、コンテキスト内の変更をデータストアと同期させる必要があるようです。 – Aldo
私はそうは思わない、Aldo –