我不知道如何定义这种关系。我有用户和徽章,用户可以收集许多徽章,他们也可以多次拥有某个徽章。(就像 Stackoverflow 一样)。
如何定义这个 numberOfTimesEarntBadge 计数?
我试过简单地再次访问 user.badges.add(badge) ,但它没有插入数据库。
目前,徽章(在用户类内部)定义为:
public virtual ICollection<Badge> Badges { get; set; }
谢谢!
我不知道如何定义这种关系。我有用户和徽章,用户可以收集许多徽章,他们也可以多次拥有某个徽章。(就像 Stackoverflow 一样)。
如何定义这个 numberOfTimesEarntBadge 计数?
我试过简单地再次访问 user.badges.add(badge) ,但它没有插入数据库。
目前,徽章(在用户类内部)定义为:
public virtual ICollection<Badge> Badges { get; set; }
谢谢!
您需要一个关系实体,例如 UserBadge,因此导航属性将是 ICollection UserBadges
UserBadge 将有一个用户和徽章的导航属性,以及一个 PK ID 字段。
然后要获得徽章计数,您可以按徽章对用户的 UserBadges ICollection 进行分组,然后计算每个组:
var badgeCountQuery =
for ub in userEntity.UserBadges
group ub by ub.Badge into g
select new
{
Badge = g.Key,
BadgeCount = g.Count()
};