نمایش نتایج 1 تا 31 از 31

نام تاپیک: ایجاد یک پروژه MVC با به کارگیری الگوی Unit of work با استفاده از کتابخانه Structuremap چند لایه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #24
    تنظبمات Global.asax


    public class MvcApplication : System.Web.HttpApplication
    {


    protected void Application_Start()
    {
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.F ilters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);


    initStructureMap();
    }




    private static void initStructureMap()
    {
    ObjectFactory.Container.GetInstance<IUnitOfWork>() .ForceDatabaseInitialize();


    ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
    }




    protected void Application_EndRequest(object sender, EventArgs e)
    {
    HttpContextLifecycle.DisposeAndClearAll();
    }
    }




    public class StructureMapControllerFactory : DefaultControllerFactory
    {
    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
    return ObjectFactory.Container.GetInstance(controllerType ) as Controller;
    }
    }


    }




    نمونه ApplicationDataContext

    public class DataContext : DbContext, IUnitOfWork    {
    public DataContext():base("DefaultConnection")
    {


    }
    public DbSet<Product> Product { get; set; }
    public DbSet<ProductGroup> ProductGroup { get; set; }


    public override int SaveChanges()
    {
    return base.SaveChanges();
    }




    public void RejectChanges()
    {
    foreach (var entry in this.ChangeTracker.Entries())
    {
    switch (entry.State)
    {
    case EntityState.Modified:
    entry.State = EntityState.Unchanged;
    break;


    case EntityState.Added:
    entry.State = EntityState.Detached;
    break;
    }
    }
    }


    public void ForceDatabaseInitialize()
    {
    Database.Initialize(true);
    }


    #region IUnitOfWork Members
    public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
    {
    return base.Set<TEntity>();
    }
    #endregion
    }


    نمونه ObjectFactoty.cs
     public static class ObjectFactory    {
    private static readonly Lazy<Container> ContainerBuilder =
    new Lazy<Container>(DefaultContainer, LazyThreadSafetyMode.ExecutionAndPublication);


    public static IContainer Container
    {
    get { return ContainerBuilder.Value; }
    }


    private static Container DefaultContainer()
    {
    var container = new Container(x =>
    {
    x.For<IUnitOfWork>().HybridHttpOrThreadLocalScoped ().Use(() => new DataContext());
    //x.For<DataContext>().HybridHttpOrThreadLocalScoped ().Use(context => (DataContext)context.GetInstance<IUnitOfWork>());
    //x.For<DbContext>().HybridHttpOrThreadLocalScoped() .Use(context => (DataContext)context.GetInstance<IUnitOfWork>());



    x.For<IProductService>().Use<ProductService>();
    x.For<IProductGroupService>().Use<ProductGroupServ ice>();


    });


    return container;
    }




    }
    آخرین ویرایش به وسیله Moien Tajik : شنبه 09 دی 1396 در 09:56 صبح

تاپیک های مشابه

  1. مشکل در ایجاد به روز رسانی Entity در پروژه MVC
    نوشته شده توسط farid_zolghadr در بخش ASP.NET MVC
    پاسخ: 2
    آخرین پست: یک شنبه 13 مرداد 1392, 08:19 صبح
  2. سوال: ایجاد یک پروژه جدید MVC 2 و بعد از اجرا Error Server Error in '/' Application.
    نوشته شده توسط fa_arnc در بخش ASP.NET MVC
    پاسخ: 1
    آخرین پست: یک شنبه 04 دی 1390, 23:49 عصر
  3. ایجاد پروژه MVC
    نوشته شده توسط Future در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: جمعه 20 آذر 1388, 10:54 صبح
  4. راهکارهای ایجاد یک پروژه حرفه ای PHP
    نوشته شده توسط sweb در بخش PHP
    پاسخ: 1
    آخرین پست: دوشنبه 05 شهریور 1386, 15:30 عصر
  5. ایجاد یک پروژه Unmanaged
    نوشته شده توسط حمیدرضاصادقیان در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: چهارشنبه 16 آذر 1384, 10:14 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •