我有两个对象(多对多)站点和成员部分显示为:
public class Site
{
public Site()
{
SiteAuthors = new List<Member>();
}
public virtual IList<Member> SiteAuthors { get; set; }
...
}
public class Member
{
public Member()
{
AuthoredSites = new List<Site>();
}
public virtual IList<Site> AuthoredSites { get; set; }
...
}
我已将映射保留为默认值,覆盖如下所示:
public class MemberOverride : IAutoMappingOverride<Member>
{
public void Override(AutoMapping<Member> mapping)
{
mapping.HasManyToMany(x => x.AuthoredSites).Cascade.AllDeleteOrphan();
}
}
public class SiteOverride : IAutoMappingOverride<Site>
{
public void Override(AutoMapping<Site> mapping)
{
}
}
我在适当地删除网站和成员时遇到问题。
我在覆盖中尝试了各种逆映射组合,但不可避免地有一种我需要的情况不起作用。
我想要实现的是,当我从站点中删除所有成员时(记住他们仍然可以是其他站点的作者) - 然后我希望删除该站点。
当我从成员中删除站点时,只有在没有其他作者的情况下才应删除该站点。
要使用的正确覆盖或映射配置是什么?
谢谢你的帮助。