Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-链接到表中的所有项,然后添加新项?_C#_Entity Framework_Ef Code First - Fatal编程技术网

C# 实体框架-链接到表中的所有项,然后添加新项?

C# 实体框架-链接到表中的所有项,然后添加新项?,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有两个简单的C#对象(用户和部门),如下所示(首先使用EF代码): 公共类用户 { int UserID{get;set;} 字符串名称{get;set;} 列出部门{get;set;} } 公共课系 { int DepartmentID{get;set;} 字符串名称{get;set;} 列出用户{get;set} } 我可以创建一个用户并向其中添加多个部门,一切都很好 我想做的是将用户设置为连接到“所有部门” 现在,虽然我可以将所有部门添加到一个用户中,但如果以后我添加一个新部门,我也必

我有两个简单的
C#
对象(用户和部门),如下所示(首先使用EF代码):

公共类用户
{
int UserID{get;set;}
字符串名称{get;set;}
列出部门{get;set;}
}
公共课系
{
int DepartmentID{get;set;}
字符串名称{get;set;}
列出用户{get;set}
}
我可以创建一个用户并向其中添加多个部门,一切都很好

我想做的是将用户设置为连接到“所有部门”

现在,虽然我可以将所有部门添加到一个用户中,但如果以后我添加一个新部门,我也必须记住将其添加到该用户中,这并不理想

我最初的想法(正确或错误)是向用户添加一个布尔AllDepartments属性。然而,虽然我可以让它工作,它并不干净。每当我调用一个用户时,我必须记住检查布尔值,并将部门列表构建为一个单独的查询(因此它在数据库中也不是真正的关系)

我的理想是创建一个全新的部门,在检索该部门时,它已经拥有所有应该连接到所有部门的用户,可以通过List属性进行导航


以前有没有人遇到过这个问题,并彻底解决了这个问题?

面对同样的问题,我使用一个
部门组
表,每个部门至少属于一个组

  • 然后,用户属于某个部门组(不再属于某个部门)
  • 然后我有一个业务规则,将每个新部门添加到“所有部门组”

所有的解决方案都有其利弊。该解决方案的主要缺点(imho)是属于所有部门的用户自动属于一个新的绝密部门。您确定这就是您想要的吗?

如果在部门实体中创建一个包含每个用户id的新列,该怎么办?不管怎样,最后你还是想要那样。或者创建一个名为AssignedDepartment的第三个实体,该实体具有用户ID和部门ID。实际上,这一抽象层可能适合我。它简化了添加/删除文档所需的额外代码。从数据库的角度来看,它不是那么“漂亮”,但会很好地工作。我正在导入一个旧的DB,它使用0作为所有文档的部门ID,这会导致很多问题,每次调用都会出现代码混乱的情况。
public class User
{
     int UserID {get; set;}
     string Name {get; set;}
     List<Department> Departments {get; set;}
}

public class Department
{
     int DepartmentID {get; set;}
     string Name {get; set;}
     List<User> Users {get;set}
}