首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF Code-First不会立即更新集合

EF Code-First不会立即更新集合
EN

Stack Overflow用户
提问于 2011-06-09 07:38:29
回答 1查看 234关注 0票数 0

我正在开发一个使用实体框架代码优先的ASP.NET MVC3网站。在索引操作中,我从数据库中获取了一些TransactionJournal对象,调用了一个名为CreateTransactions()的方法,基本上就是创建一些事务并将它们添加到TransactionJournal的ICollection中。然后,我保存上下文,然后查询所有事务,然后它们就不在那里了!但是如果我只是刷新页面,我将获得第一次生成的事务,这些事务没有出现,但不是这次生成的事务。有很多代码,所以,我将尝试模拟这里的重要部分,以便您可以看到。

TransactionJournal的一部分:

代码语言:javascript
复制
public class TransactionJournal {
    public long TransactionJournalID { get; set; }
    public virtual ICollection<Transaction> Transactions { get; set; }
    // ...
}

Index操作的一部分:

代码语言:javascript
复制
IDbSet<TransactionJournal> journal_dbset = Context.Set<TransactionJournal>();
ICollection<TransactionJournal> journals = journal_dbset.Where( ... ).ToList();

foreach(TransactionJournal j in journals)
    j.CreateTransactions(); // Create some transactions and add it to the Transactions collection

Context.Commit(); // This actually calls the SaveChanges() method, only

IDbSet<Transaction> trans_dbset = Context.Set<Transaction>();
ICollection<Transaction> trans = trans_dbset.Where( ... ).ToList(); // The transactions just created are NOT here! But those created in previews Index action calls are!

就像SaveChanges()没有立即更新Context对象中的集合一样。我应该怎么做才能获得这些刚刚创建的事务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-09 11:51:24

在CreateTransactions中,您是否调用了要更新的上下文中的对象?

代码语言:javascript
复制
context.Entry(j).State = EntityState.Modified;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6286528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档