簡體   English   中英

無法創建類型為“結算類型”的常量值。 在這種情況下,僅支持基本類型(例如Int32,String和Guid)

[英]Unable to create a constant value of type 'Closure type'. Only primitive types ('such as Int32, String, and Guid') are supported in this context

我在SQL Server中具有表名稱OtherEarningandDeduction,並且列很少

    columns         dataType  
1). Id              guid     as primary key.
2). SalaryHeadId    guid     as FK.
3). Month           varchar 
4). AcademicYearId  guid     as FK
5). .....
6). .....
7). .....

我想檢查表中是否存在相同的記錄,所以我在asp.net中使用Linq。 並限制為表中存在的那些記錄插入記錄。

經理是實體的對象。

OtherEarningandDeduction obj =new OtherEarningandDeduction();


var dublicateCheck=manager.OtherEarningandDeduction.where(x=>x.SalaryHeadId==obj && x.month==obj.month && x.AcademicYearId==obj.AcademicYearId).toList();

我在上面的行中收到錯誤...

無法創建類型為“結算類型”的常量值。 在這種情況下,僅支持基本類型(例如Int32,String和Guid)。

所以請幫助我...

我不確定100%,但是我認為問題是因為您將x.SalaryHeadIdobj而不是obj.SalaryHeadId進行比較。

我認為這會起作用:

var dublicateCheck=manager.OtherEarningandDeduction.where(x=>x.SalaryHeadId==obj.SalaryHeadId && x.Month==obj.Month && x.AcademicYearId==obj.AcademicYearId).toList();

在您的代碼中,您試圖將xSalaryHeadId屬性(字段)與實例化的對象進行比較,而不是將實例化對象的SalaryHeadId屬性(字段)進行比較。 因此,錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM