dotnet core 开发记录

使用 EF 读取数据时,习惯性的写成

var quest = (from q in DbContext.TableName

                        select q).ToList();

今天需要在输出的结果上加上一个新的字段 
所以写为

var quest = (from q in DbContext.TableName

                        select new {

                q.a,

                q.b,

                新字段 = 0

}).ToList();

如果 这个“新字段”是一个固定值或对象。是没有问题的。

但如果 “ 新字段 ” 的内容是需要计算的。

且需要计算的结果来自其他对象的情况下

例如: 新字段 = getValue(q.a,   其他数据)

系统 就会 出错:This could potentially cause memory leak. Consider making the method static so that it does not capture constant in the instance.

网上查到:

https://learn.microsoft.com/en-us/answers/questions/1180930/entityframeworkcore-throws-exceptions-but-tests-pa
有说明

注意到:Jack J Jun
的回答。
我自己的理解 是。根据 微软 EF 文档中的说明,

需要把代码修改为:

var TableName = DbContext.TableName.ToList();

var quest = (from q in TableName

                        select new {

                q.a,

                q.b,

                 getValue(q.a,   其他数据)

}).ToList()

这样就不会出错了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值