在使用c#无状态库时,人们如何构建代码?
https://github.com/nblumhardt/stateless
我特别感兴趣的是它如何与注入的依赖关系以及正确的职责和分层方法联系起来.
我目前的结构涉及以下内容:
public class AccountWf
{
private readonly AspNetUser aspNetUser;
private enum State { Unverified, VerificationRequestSent, Verfied, Registered }
private enum Trigger { VerificationRequest, VerificationComplete, RegistrationComplete }
private readonly StateMachine<State, Trigger> machine;
public AccountWf(AspNetUser aspNetUser, AccountWfService userAccountWfService)
{
this.aspNetUser = aspNetUser;
if (aspNetUser.WorkflowState == null)
{
aspNetUser.WorkflowState = State.Unverified.ToString();
}
machine = new StateMachine<State, Trigger>(
() => (State)Enum.Parse(typeof(State), aspNetUser.WorkflowState),
s => aspNetUser.WorkflowState = s.ToString()
);
machine.Configure(State.Unverified)
.Permit(Trigger.VerificationRequest, State.VerificationRequestSent);
machine.Configure(State.VerificationRequestSent)
.OnEntry(() => userAccountWfService.SendVerificationRequest(aspNetUser))
.PermitReentry(Trigger.VerificationRequest)
.Permit(Trigger.VerificationComplete, State.Verfied);
machine.Configure(State.Verfied)
.Permit(Trigger.RegistrationComplete, State.Registered); …Run Code Online (Sandbox Code Playgroud) 尝试在Linqpad中对dbcontext程序集运行查询时出现以下错误.
InvalidOperationException:自创建数据库以来,支持"UserQuery"上下文的模型已更改.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).
做了一些阅读后,似乎:
Database.SetInitializer<DiaryAssistantContext>(null);
Run Code Online (Sandbox Code Playgroud)
需要.但是,这已经在我的派生DbContext类中.
任何人都可以给我指针吗?