1

如何在应用程序服务中注入 DbContext 对象?

需要访问它来创建实体记录的克隆。

4

3 回答 3

7

您可以IDbContextProvider<TDbContext> _sampleDbContextProvider用作构造函数注入,使用 with_sampleDbContextProvider.GetDbContext();

于 2017-07-08T21:37:35.607 回答
1

克隆实体的一种棘手方法是序列化然后反序列化对象。使用Newtonsoft进行序列化。只需使用此代码

MyEntity myEntity = _myEntityRepository.get(1);
string cloned = JsonConvert.SerializeObject(myEntity);
MyEntity clonedEntity = JsonConvert.DeserializeObject<MyEntity>(cloned);
clonedEntity.Id = 0;
于 2017-07-10T07:37:29.790 回答
0

这个问题有点模棱两可,但这里有一些事情供您考虑:

依赖注入:AUTOFAC 或 NINJECT(例如)这将允许您通过 ctor 或属性将您的 DbContext注入到任何类中,以便您可以使用它。

将其作为参数传递(您的服务是如何生成的?)

var appService = new ApplicationService(new MyDbContext())

其中任何一个都可以。如果这不是你的意思,更多信息会有所帮助:)

于 2017-07-08T20:29:59.127 回答