c# - 我应该将 DBContext 注入内部类吗?
问题描述
我有一个用于将属性映射到模型的内部类。我需要将模型上的新属性映射到单独的 dbcontext 实体。我应该也将 dbcontext 注入内部类还是有更好的方法?
public class MyRepository : IMyRepository{
public readonly MyDbContext _context;
public MyRepository(MyDbContext dbContext){
_context = dbContext;
}
public List<MyStuff> Get(MyReq req){
var myStuff = _context.MyStuff.Include(r => r.OtherStuff).AsNoTracking();
myStuff.Where(x => x.StuffId == req.StuffId).ToList();
var myStuffList = new List<MyStuff>();
foreach(var dm in myStuff){
var m = MyMapper.MapMyStuff(dm);
myStuffList.Add(m);
}
return myStuffList;
}
}
internal class MyMapper{
public static MyStuff MapMyStuff(MyStuff dm){
var myStuffModel = new MyStuff(){
StuffId = dm.StuffId,
StuffName = dm.StuffName, StuffColor = dm.StuffColor, ...ect.
TheirStuff = // need to pull from _context.TheirStuff
}
}
}
这可能会起作用,但我担心它可能会导致性能问题,因为它每次都会实例化一个新的 dbcontext。有没有更好的办法?
internal class MyMapper{
public static MyStuff MapMyStuff(MyStuff dm){
var _context = new MyDbContext();
var myStuffModel = new MyStuff(){
StuffId = dm.StuffId,
StuffName = dm.StuffName, StuffColor = dm.StuffColor, ...ect.
TheirStuff = _context.TheirStuff
}
}
}
解决方案
推荐阅读
- spring-boot - 无法使 shiro-redis 在 vaadin flow 弹簧靴中工作
- c# - 当分区键作为子行 c# cosmos DB 时删除文档
- java - 使用 java 8 新特性从数学算术表达式中提取数字和运算符
- javascript - React-Rails Uncaught TypeError:无法读取未定义的属性“标题”
- raspberry-pi - 将 dnsmasq 配置为侦听公共 IP 而不仅仅是 LAN
- mysql - 从表 B 更新表 A 中的列,其中值在 MYSQL 中表 B 的不同结果中不存在
- r - 在R中的HTML表格中排列数据
- flutter - 将 mbgl-offline db 转换为 mbtiles
- android-room - 安卓机房。错误:无法弄清楚如何从游标中读取此字段
- java - 代码错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:1