Giter Site home page Giter Site logo

Comments (10)

TylerCarlson1 avatar TylerCarlson1 commented on July 24, 2024 2

Entity Framework supports EF6 only. the code is only a couple of classes so I'm sure you can make a version for EF.Core extending from AutoMapper.Collections easily enough.

from automapper.collection.

ggirard07 avatar ggirard07 commented on July 24, 2024 2

I'll add my +1 here as I am trying to migrate to ASP.Net Core :)

from automapper.collection.

iotalambda avatar iotalambda commented on July 24, 2024 2

@Tasteful Awesome! Works perfectly.

For googlers, note that the syntax is
cfg.SetGeneratePropertyMaps<GenerateEntityFrameworkCorePrimaryKeyPropertyMaps<MyContext>>();
instead of the traditional
cfg.SetGeneratePropertyMaps<GenerateEntityFrameworkPrimaryKeyPropertyMaps<MyContext>>();

Took a while to figure that out ^^

from automapper.collection.

Tasteful avatar Tasteful commented on July 24, 2024 2

@replaysMike If you use DI you need in the first pre-release set the

mapper.ConstructServicesUsing(type => ActivatorUtilities.GetServiceOrCreateInstance(serviceProvider, type))

before calling the SetGeneratePropertyMaps method. The other way around is to pass in the IServiceProvider in an instance

x.SetGeneratePropertyMaps(new GenerateEntityFrameworkCorePrimaryKeyPropertyMaps<DB>(serviceProvider);

As you can see in AutoMapper/AutoMapper.Collection.EFCore#2 we are working to get up a solution to work better with the AutoMapper.Extensions.Microsoft.DependencyInjection package.

from automapper.collection.

Baune8D avatar Baune8D commented on July 24, 2024 2

+1 for this ticket. This is the last component i need to migrate a project to .NET Core.

from automapper.collection.

Tasteful avatar Tasteful commented on July 24, 2024 1

Now you can download and test the package for EFCore from MyGet (https://myget.org/feed/automapperdev/package/nuget/AutoMapper.Collection.EntityFrameworkCore)

from automapper.collection.

replaysMike avatar replaysMike commented on July 24, 2024

I'm getting an error when trying to use this configuration.

services.AddAutoMapper((cfg) => {
  cfg.AddCollectionMappers();
  cfg.SetGeneratePropertyMaps<GenerateEntityFrameworkCorePrimaryKeyPropertyMaps<ApplicationDbContext>>();
});

throws a "No parameterless constructor defined" exception. If I add one to my context, I then get:

No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions object in its constructor and passes it to the base constructor for DbContext.

However, my context does have a DbContextOptions constructor:

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
{
}

from automapper.collection.

replaysMike avatar replaysMike commented on July 24, 2024

I was able to figure this out. It's because in my DbContext.OnConfiguring() has this line:

if (!string.IsNullOrEmpty(ConnectionString))
    optionsBuilder.UseSqlServer(ConnectionString);

I guess this extension tries to create a DbContext instance and it has no connection string passed so it fails. I had to add some logic to load up a default connection string to make this error go away, as the connection string is passed in for .net core EF setup using AddDbContext<>().

from automapper.collection.

Tasteful avatar Tasteful commented on July 24, 2024

This has stalled because we need the new version of AutoMapper.Extensions.Microsoft.DependencyInjection out that is exposing the IServiceProvider during the configuration.

@jbogard any progress on this?

from automapper.collection.

Tasteful avatar Tasteful commented on July 24, 2024

@jbogard You can close this one also, package is published on nuget.

from automapper.collection.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.