Following on the heels of my other question about mocking DbContext.Set I've got another question about mocking EF Code First.

I now have a method for my update that looks like:

if (entity == null)
    throw new ArgumentNullException("entity");

Context.GetIDbSet<T>().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();

return entity;

Context is an interface of my own DbContext.

The problem I'm running in to is, how do I handle the

Context.Entry(entity).State.

I've stepped through this code and it works when I have a real live DbContext as the implementation of my Context interface. But when I put my fake context there, I don't know how to handle it.

There is no constructor for a DbEntityEntry class, so I can't just create a new one in my fake context.

Has anyone had any success with either mocking or faking DbEntityEntry in your CodeFirst solutions?

Or is there a better way to handle the state changes?

Edit
Report