c# - 在包含中过滤属性列表
问题描述
我需要你的帮助
我尝试使用 .Include 创建一个 linq 句子,但我的问题是我在 mi 类中有一个属性,女巫是一个列表,它是我的类:
public partial class document
{
public int ID { get; set; }
public string Amount { get; set; }
public List<Log> Log { get; set; }
}
这是课堂日志
public partial class Log
{
[Key]
public int ID { get; set; }
[Required]
public Status Status { get; set; }
[Column(TypeName = "text")]
public string Description { get; set; }
public DateTime? DateLog { get; set; }
public int? DocumentID{ get; set; }
[ForeignKey("DocumentID")]
public Document Document{ get; set; }
}
我的问题是我不知道如何过滤文档中的列表记录以包含在类中,我需要获取整个文档类并过滤仅显示状态=已接收的日志,一个文档可以有很多日志
你试图这样做,但它没有用
var Result = db.document
.Include(m => m.Log.Where(c => c.Status == Status.Recieved));
我收到了下一个错误
"包含路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为引用导航属性,使用选择运算符作为集合导航属性。\r\n参数名称: 路径"
我感谢您的帮助
解决方案
Include
用于包含与实体的关系并获取相关实体属性,检查文档 -获取相关数据
如果您选择的文档没有Include
这样
var documents = await db.document.ToListAsync();
您Log
将获得为空的文档数据。
你需要这样的东西:
var result = await db.document
.Select(w=> new
{
document = w,
log = w.Log.Where(c => c.Status == Status.Recieved).ToList()
}).ToListAsync();
推荐阅读
- java - 使用 Junit 和 Mockito 在方法内部创建对象的测试方法
- arrays - 结构内存存储的动态数组
- vue.js - VUE3 数据、道具和 v-if 不能一起工作?
- reactjs - 如何在docker运行时读取react js中的env变量
- google-chrome - Vimeo 视频突然在 Chrome 中抛出 CORS 错误
- android - 安卓 | 导航图 | 方向改变 | 片段未保留
- types - TS:将 Partial 转换为非 Partial 的安全方式
- swift - .searchable 中的 NavigationLink 不起作用
- sql - How can i join two tables with two columns that refers the same column in the second table in SQL Server
- javascript - 如何更改highcharts中阴影区域的颜色