내 솔루션 아키텍처는 다음과 같다 :4 프로젝트
MVC 4 - 프리젠 테이션 계층
관리자 클래스 라이브러리
DAL 라이브러리
일반 DTO 프로젝트 도서관.
이제 간단한 멤버십 관련 클래스를 추가하고 구현했습니다.
여기에 MVC 4 프로젝트에 필터가 존재하는데 - DBCONTEXT 개체 ... DBCONTEXT 개체로 잘못되었거나 DAL 참조가 MVC 4에 존재해서는 안되며 별도로 유지하려고합니다. DAL 프로젝트에만.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
{
private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Ensure ASP.NET Simple Membership is initialized only once per app start
LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
Database.SetInitializer<FinalEFFirstContext>(null);
try
{
using (var context = new FinalEFFirstContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("FinalEFFirstContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
if (!WebSecurity.ConfirmAccount("[email protected]") && !WebSecurity.UserExists("[email protected]"))
{
WebSecurity.CreateUserAndAccount("[email protected]", "password");
}
if (!Roles.RoleExists("Administrator"))
{
Roles.CreateRole("Administrator");
Roles.AddUserToRole("[email protected]", "Administrator");
}
}
catch (Exception ex)
{
throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
}
}
이 나를 인도 해주십시오 내가이 필터를 분리 할 수있는 방법 : 아래
필터 코드?이 클래스를 Manager 클래스 라이브러리로 이동하고이 모든 MVC 참조를 거기에 추가해야합니까?
당신은
이 어떻게에 주석으로 추가 할 수 있습니다 : 그것은 당신을 도움이된다면
나는, DAL 당신에게 내 솔루션 EF에 참조 할 보여줍니다 구조와 필터를 표시 할 수 있습니다 웹 프로젝트의 AccountController? 웹 프로젝트에는 DAL 참조가 아닌 Bussiness 클래스 라이브러리의 참조가 포함되어 있기 때문입니다. – user3711357