Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 处理;待决“;用户工作流_Entity Framework_Database Design - Fatal编程技术网

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