C# 实体框架下主数据表及相关表的处理
我有三张桌子 员工(ID、名字、姓氏)-其中包括所有员工,包括经理等 EmployeeRole(RoleID,Role)-这里我们定义了员工的角色 项目(项目名称、经理、员工、日期)-这里是分配给所有员工的项目的详细信息C# 实体框架下主数据表及相关表的处理,c#,entity-framework,entity-framework-5,ado.net-entity-data-model,C#,Entity Framework,Entity Framework 5,Ado.net Entity Data Model,我有三张桌子 员工(ID、名字、姓氏)-其中包括所有员工,包括经理等 EmployeeRole(RoleID,Role)-这里我们定义了员工的角色 项目(项目名称、经理、员工、日期)-这里是分配给所有员工的项目的详细信息 在项目表中,我有Emmployee、Manager等列,这两列都是Employee表的外键。问题是我有输入,比如(Firstname,Lastname),如何找到雇员的id。 或者是表结构错误 当我尝试在项目表中插入数据时,EmployeeRole表也在更新。它不应该更新Emp
请向我推荐解决方案?您的逻辑数据模型不正确(IMHO) 一个项目可以有很多员工。一名员工可以作为一个特定角色参与一个或多个项目 所以员工和项目之间是多对多的关系,交集表有一个角色类型 e、 g 那么你的生命就像这样:
// Add a new Role
Role role = new Role();
role.RoleID = 1; // TODO: make identity in database
role.RoleName = "Role 1";
db.Roles.Add(role);
db.SaveChanges();
// Add a new Employee
Employee employee = new Employee();
employee.EmployeeID = 1; // TODO: make identity in database
employee.FirstName = "Carl";
employee.LastName = "Prothman";
db.Employee.Add(employee);
db.SaveChanges();
// Add a new Project
Project project = new Project();
project.ProjectID = 1; // TODO: make identity in database
project.ProjectName = "Create new data model";
db.SaveChanges();
// Add employee to project as role1
ProjectEmployee projectEmployee = new ProjectEmployee();
projectEmployee.ProjectID = project.ProjectID;
projectEmployee.EmployeeID = employee.EmployeeID;
projectEmployee.RoleID = role.RoleID;
db.ProjectEmployees.Add(projectEmployee);
db.SaveChanges();
// Add a new Role
Role role = new Role();
role.RoleID = 1; // TODO: make identity in database
role.RoleName = "Role 1";
db.Roles.Add(role);
db.SaveChanges();
// Add a new Employee
Employee employee = new Employee();
employee.EmployeeID = 1; // TODO: make identity in database
employee.FirstName = "Carl";
employee.LastName = "Prothman";
db.Employee.Add(employee);
db.SaveChanges();
// Add a new Project
Project project = new Project();
project.ProjectID = 1; // TODO: make identity in database
project.ProjectName = "Create new data model";
db.SaveChanges();
// Add employee to project as role1
ProjectEmployee projectEmployee = new ProjectEmployee();
projectEmployee.ProjectID = project.ProjectID;
projectEmployee.EmployeeID = employee.EmployeeID;
projectEmployee.RoleID = role.RoleID;
db.ProjectEmployees.Add(projectEmployee);
db.SaveChanges();