Entity framework 在相同的桌子之间有M:M和1:M的
我有两个实体。一个是Entity framework 在相同的桌子之间有M:M和1:M的,entity-framework,Entity Framework,我有两个实体。一个是团队,另一个是公司。一个团队可以属于多个公司,一个公司可以属于多个团队 因此,使用实体框架,我在团队和公司之间建立了M:M关系 一家公司可以是不同类型的。说:Type-A和Type-B 现在,每当属于a型公司(仅a型而非B型)的人员在团队中创建一行时,该人员CompanyId以及团队表中的其他公司Id 所以我觉得在团队和公司之间也必须有1:M的关系 有谁能建议我如何在两个相同的表之间同时使用1:M和M:M吗?注意:我不完全理解你的措辞,但我认为我的回答排除了我理解A型和B型的
团队
,另一个是公司
。一个团队可以属于多个公司,一个公司可以属于多个团队
因此,使用实体框架,我在团队
和公司
之间建立了M:M关系
一家公司可以是不同类型的。说:Type-A
和Type-B
现在,每当属于a型公司(仅a型而非B型)的人员在团队中创建一行时,该人员CompanyId
以及团队表中的其他公司Id
所以我觉得在团队
和公司
之间也必须有1:M的关系
有谁能建议我如何在两个相同的表之间同时使用1:M和M:M吗?注意:我不完全理解你的措辞,但我认为我的回答排除了我理解A型和B型的细节的需要 如果已经建立了多对多关系,那么通过业务逻辑限制(在特定情况下)可以建立的连接数量似乎比扩展数据模型结构更容易 添加一对多关系意味着对于a型公司,您希望属于它的团队只归该公司所有,而不是链接到多个公司,对吗 因此,您需要防止向同一团队添加第二家公司。
请再说一遍:
- 保存CompanyTeam时(我假设Company和Team之间的中间表被调用),检查同一个团队是否已经有CompanyTeam行李>
- 如果是,请检查该公司(链接到已存在的公司系统中)是否为A类型
- 如果是A类,则拒绝当前保存操作(因为A类公司不能将其团队与其他公司关联)
- 可选:如果当前保存操作与现有链接公司是同一公司,是否允许继续保存操作
- 在所有其他情况下(如果上述任何步骤失败),允许执行保存操作
如果我误解了,请澄清,我会更正我的答案。您能否再次解释一下“那么团队表中的人员公司Id以及其他公司Id”部分?@LiranBo:太复杂了。我能解释的是,每当创建一个新团队时,我都需要存储一些公司ID。删除了MVC标签和标题中的标签。这里与MVC有什么关系?这与你的要求无关。请使用你正在使用的语言进行标记。好的,那么主要问题是创建两个M:M和1:M的关系?你是先使用代码还是先使用模型?@LiranBo:我先使用代码。问题是我已经有了公共虚拟ICollection Companys{get;set;}的入口,要创建1:M,我需要再次使用它…dat怎么可能。。?