如何在应用程序服务中注入 DbContext 对象?
需要访问它来创建实体记录的克隆。
您可以IDbContextProvider<TDbContext> _sampleDbContextProvider
用作构造函数注入,使用 with_sampleDbContextProvider.GetDbContext();
克隆实体的一种棘手方法是序列化然后反序列化对象。使用Newtonsoft进行序列化。只需使用此代码
MyEntity myEntity = _myEntityRepository.get(1);
string cloned = JsonConvert.SerializeObject(myEntity);
MyEntity clonedEntity = JsonConvert.DeserializeObject<MyEntity>(cloned);
clonedEntity.Id = 0;
这个问题有点模棱两可,但这里有一些事情供您考虑:
依赖注入:AUTOFAC 或 NINJECT(例如)这将允许您通过 ctor 或属性将您的 DbContext注入到任何类中,以便您可以使用它。
将其作为参数传递(您的服务是如何生成的?)
var appService = new ApplicationService(new MyDbContext())
其中任何一个都可以。如果这不是你的意思,更多信息会有所帮助:)