Comment injecter un objet de DbContext dans le service d'application?ASP.NET BoilerPlate: Comment injecter un objet de DbContext dans le service d'application?
Vous devez y accéder pour créer un clone d'un enregistrement d'entité.
Comment injecter un objet de DbContext dans le service d'application?ASP.NET BoilerPlate: Comment injecter un objet de DbContext dans le service d'application?
Vous devez y accéder pour créer un clone d'un enregistrement d'entité.
La question est un peu ambigu, mais voici quelques petites choses pour que vous considériez:
injection de dépendances: AUTOFAC ou ninject (par exemple) Cela vous permettra de injectez votre DbContext en n'importe quelle classe via ctor ou une propriété à laquelle vous pouvez l'utiliser.
passe comme paramètre (comment est votre service généré?)
var appService = new ApplicationService(new MyDbContext())
Soit un de ceux fonctionnera. Si ce n'était pas ce que vous vouliez dire, un peu plus d'informations vous aider :)
Vous pouvez utiliser IDbContextProvider<TDbContext> _sampleDbContextProvider
comme l'injection de constructeur, en utilisant avec _sampleDbContextProvider.GetDbContext();
Une façon difficile à cloner une entité est juste sérialiser et désérialiser l'objet . Utilisez Newtonsoft pour la sérialisation. Il est simplement possible d'utiliser ce code
MyEntity myEntity = _myEntityRepository.get(1);
string cloned = JsonConvert.SerializeObject(myEntity);
MyEntity clonedEntity = JsonConvert.DeserializeObject<MyEntity>(cloned);
clonedEntity.Id = 0;