![](/img/trans.png)
[英]Showing Unable to create a constant value of type ''. Only primitive types ('such as Int32, String, and Guid') are supported in this context
[英]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.SalaryHeadId
与obj
而不是obj.SalaryHeadId
进行比较。
我认为这会起作用:
var dublicateCheck=manager.OtherEarningandDeduction.where(x=>x.SalaryHeadId==obj.SalaryHeadId && x.Month==obj.Month && x.AcademicYearId==obj.AcademicYearId).toList();
在您的代码中,您试图将x
的SalaryHeadId
属性(字段)与实例化的对象进行比较,而不是将实例化对象的SalaryHeadId
属性(字段)进行比较。 因此,错误消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.