我有一个将数据插入表中的存储过程。我在使用.Find
的存储过程语句之后立即查询以查看插入是否发生,并且它返回null。如果我稍后使用其他DbContext
查询,那么它就在那里,所以它就像我需要刷新上下文一样。
一些示例代码:
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创建。所以基本上我在查询一些不存在的东西。 :)
答案 0 :(得分:0)
检查存储过程后,我发现它有自动id创建,所以我实际上并没有查询我认为我有id的项目。在SaveChanges
上调用DBContext
可确保它也亮起来。