结合SQL 语句来看,错误非常明确:你的模型类中包含一个名为 BomId(或误拼为 Bomld)的属性,而你执行的 FromSqlRaw 查询 并没有返回这个字段,所以 EF Core 报错。
你的问题出在两处可能:
✅ 1. 模型类中包含了 BomId 字段,但 SQL 中没有返回该列
你执行的 SQL 是:
SELECT [MES_Bom_Detail].[DomDetailId], [Sequence], [MaterialCode], ...
FROM [MES_Bom_Detail]
JOIN [MES_Bom_DetailLink] ON [MES_Bom_Detail].[DomDetailId] = [MES_Bom_DetailLink].[DomDetailId]
WHERE [MES_Bom_DetailLink].[BomId] = '...'
你 在 WHERE 条件中用了 BomId,但并没有在 SELECT 中包含它。
⚠️ EF 模型类中有 public Guid BomId { get; set; },那你必须要把它 选出来!
✅ 解决方法:修改 SQL,显式包含 BomId 字段
SELECT
[MES_Bom_Detail].[DomDetailId],
[Sequence],
[MaterialCode],
[MaterialName],
[Spec],
[UsageQty],
[ConsumeModel],
[Warehouse],
[SupplierCode],
[KitScale],
[Enable],
[CreateID],
[Creator],
[CreateDate],
[ModifyID],
[Modifier],
[ModifyDate],
[MES_Bom_DetailLink].[BomId] -- 加上这行!
FROM
[MES_Bom_Detail]
JOIN
[MES_Bom_DetailLink] ON [MES_Bom_Detail].[DomDetailId] = [MES_Bom_DetailLink].[DomDetailId]
WHERE
[MES_Bom_DetailLink].[BomId] = 'd57095e6-ef91-4f00-87cb-82e2dbb633d6'
确保 BomId 作为查询结果列出现。