entity-framework-6effort

Using Effort with EF6 in a DB First approach


I'm using the Model First approach with EF6 and I'm trying to use Entity Framework Effort to develop in-memory tests.

Here is what I do in my test:

var inMemoryConnection = Effort.DbConnectionFactory.CreateTransient("name=MyEntities");
var inMemoryContext = new MyEntities(inMemoryConnection);

MyEntities:

public partial class MyEntities: DbContext
{
    public MyEntities(DbConnection dbConnection)
        : base(dbConnection, contextOwnsConnection: true)
    {
    }

When I run the tests, I get an error saying I didn't specify any [key] attributes which is normal since I am not using a Code First approach. Therefor, the OnModelCreating method is called and shouldn't have to.

Is there a way to use Effort in a Model First design without having to add these attributes?

Thanks !


Solution

  • I found my mistake.

    Turns out Effort.DbConnectionFactory.CreateTransient is used for Code-First.

    Instead if you're working with a .edmx, Model-First, it is Effort.EntityConnectionFactory.CreateTransient("name=MyEntities") you have to use.