1

我在 SQL 服务器中有表名称 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。并限制为表中存在的那些记录插入记录。

manager 是实体的对象。

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”)。

所以请帮助我...

4

1 回答 1

0

我不是 100% 确定,但我认为问题在于您比较x.SalaryHeadIdobj而不是obj.SalaryHeadId

我认为这会起作用:

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

在您的代码中,您试图将SalaryHeadId属性(字段)x与实例化对象进行比较,而不是实例化对象的SalaryHeadId属性(字段)。因此出现错误消息。

于 2013-04-19T07:24:54.403 回答