Entity framework 处理;待决“;用户工作流
考虑以下结构: 组织机构 使用者 第一个用户还将创建组织,因此他们的帐户将已被验证。后续用户将要求现有的已验证的用户验证其帐户 使用实体框架,他们的解决方案是否比在几乎每个查询中检查验证标志更雄辩、更不容易出现错误?例如:Entity framework 处理;待决“;用户工作流,entity-framework,database-design,Entity Framework,Database Design,考虑以下结构: 组织机构 使用者 第一个用户还将创建组织,因此他们的帐户将已被验证。后续用户将要求现有的已验证的用户验证其帐户 使用实体框架,他们的解决方案是否比在几乎每个查询中检查验证标志更雄辩、更不容易出现错误?例如: from u in Db.Users where u.OrganizationId == 1 && u.CreatedAt >= DateTime.Now.AddDays(-14d) && u.Verfied select u 我考虑过
from u in Db.Users
where u.OrganizationId == 1 && u.CreatedAt >= DateTime.Now.AddDays(-14d) && u.Verfied
select u
我考虑过的一个选项是创建第二个表,如下所示,并在用户null
上设置OrganizationId
,但它似乎不太正确
组织工程师
我会通过使用另一个DBSet来设计它,但比您建议的要远一点。可能有点像PendingRequest
Id
OrganizationId
CreatedAt (?)
Name
Email
区别在于我不会在验证用户之前将用户添加到用户中。这将请求和“真实用户”清晰地分开,这意味着几乎没有风险,您将不小心在代码中包含未经验证的用户,因为这将要求您通过另一个DbSet加入
一旦有人验证了一个请求,我只需根据该请求创建一个用户并删除该请求 我能想到的最不普及的解决方案是在DbContext(
Db
)中有一个属性IQueryable-VerifiedUsers
,返回用户。其中(u=>u.Verified)
。但是,如果其他实体中存在嵌套的用户
集合,那么它将不起作用。
from u in Db.Users
where u.OrganizationId == 1 && u.CreatedAt >= DateTime.Now.AddDays(-14d) && u.Verfied
select u
Id
OrganizationId
UserId
Id
OrganizationId
CreatedAt (?)
Name
Email