我计划使用Amazons NoSQL DynamoDB而不是MS SQL Server以及Visual Studio 2013附带的最新ASP.NET身份(OWIN)框架,但发现它与Microsoft的Entity Framework紧密结合。我使用的是WebForm而不是MVC。
有关如何处理此事的任何建议?需要覆盖哪些类? DynamoDB甚至可以与EF一起使用吗?
答案 0 :(得分:6)
Microsoft.AspNet.Identity.Core
中的类不依赖于Entity Framework,可以与任何持久性存储一起使用。
您需要提供自己的UserStore版本,并且可能需要提供Microsoft.AspNet.Identity.EntityFramework
中的RoleStore(如果需要)类。使用NoSQL数据库时,您不希望包含Microsoft.AspNet.Identity.EntityFramework
。
根据您的需要,您必须在UserStore上实现许多接口。您至少需要实施IUserStore
,IUserPasswordStore
,IUserSecurityStampStore
和IUserLoginStore
。 Microsoft提供的实体框架UserStore
实现了IUserClaimStore<TUser>
和IUserRoleStore<TUser>
,根据您将调用的UserManager的方法,您可能需要或不需要实现它们。
假设您跳过了IUserClaimStore和IUserRoleStore,它实现了14种方法,但大多数方法都非常直接实现。这14种方法足以支持从默认模板中使用AccountController的部分。
我在GitHub上有一个项目,我自己尝试了类似的东西,即我实现了一个使用MongoDb而不是EntityFramework来持久化的UserStore。