我正在尝试使用Fluent API创建关系,但我无法让它工作。有2个表:SecurityEntities和SecurityEntityRelations。 SecurityEntities表包含用户和组,SecurityEntityRelation表是一个关联表,其中包含用户和组之间的关系(它定义哪些组包含哪些成员)。我已经伪装成将EntityTypeConfiguration中的2个实体联系起来:
HasMany(se => se.Groups).WithMany(g => g.Members).Map(seg =>
{
seg.MapLeftKey("ser_EntityName");
seg.MapRightKey("ser_MemberOf");
seg.ToTable("ser_SecurityEntityRelations");
});
这会填充SecurityEntity.Groups和Members属性。但其中一个安全组正在被称为“主要”组,应该存储在单独的SecurityEntity.PrimaryGroup属性中。在SQL中,这是由SecurityEntityRelation表中的一个列实现的,该列将关系标记为“primary”。 (我知道,SecurityEntity表中的自引用外键可能是一个更好的解决方案,但这是很久以前设计的,我们一直坚持这个实现,因为我们的遗留代码也是这样编写的)所以,现在我的问题是:我如何创建一个像上面那样的EF映射,它指定了相同的关系,但只有当列“ser_IsPrimaryGroup”等于固定值'1'时才会这样?