我有一个Employee类,具有以下内容:

public class Employee
{
  //EmployeeNumber cannot be the same as the Id
  public int EmployeeNumber {get; set; }
  public string EmployeeName {get; set }
}


最终,我将使用新员工来更新数据库。我有一个新雇员的列表,并且我有一个数据库中存在的当前雇员的列表。员工名称可以相同,但EmployeeNumber必须唯一。我想最终得到一个重复的员工列表,该列表是通过将要添加到数据库中的列表与代表数据库内部内容的员工列表进行比较而创建的。

使用LINQ获取重复雇员列表的最佳方法是什么?

最佳答案

正确的方法是将EmployeeNumber声明为表键,然后无需检查重复项。

public class Employee
{
  [Key]
  public int EmployeeNumber {get; set; }
  public string EmployeeName {get; set }
}


同样在数据库中,您将EmployeeNumber声明为主键。
假设您正在使用SQL Server,则可以添加Identity(1,1)使其自动递增。

这是表定义的外观示例:

CREATE TABLE Persons
(
  EmployeeNumber int IDENTITY(1,1) PRIMARY KEY,
  EmployeeName varchar(255) NOT NULL,
)

10-08 09:46