标签:dom tle bootstra 实体 安装 href sel bar ext
1、创建一个MVC系统 VIEW显示页面代码:
<link href="~/Content/bootstrap.css" rel="stylesheet" /> @model List<EFAutofacMVC.Models.TRA_BargainOrder_Test> @{ ViewBag.Title = "index"; } <div class="well"> <table class="table"> <tr> <th>订单编号</th> <th>城市代号</th> <th>时间</th> <th>订单状态</th> </tr> <tbody> @if (Model != null && Model.Any()) { foreach (var item in Model) { <tr> <td>@item.BargainOrderCode </td> <td>@item.CityCode </td> <td>@item.UpdateTime </td> <td>@item.OrderStatus </td> </tr> } } </tbody> </table> </div>
2、Controller控制器
using EFAutofacMVC.Models; using Microsoft.Extensions.Caching.Distributed; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Html; namespace EFAutofacMVC.Controllers { public class HomeController : Controller { /// <summary> /// 数据库连接 /// </summary> private readonly DefaultDbContext _DbContext; //构造器注入 public HomeController(DefaultDbContext context) { _DbContext = context; } public ActionResult Index() { var data = _DbContext.TRA_BargainOrders.ToList(); return View(data); } } }
3、models实体类
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace EFAutofacMVC.Models { public class TRA_BargainOrder_Test { public int ischeck { get; set; } public long TRA_BargainOrder_TestID { get; set; } /// <summary> /// 订单编号 /// </summary> public string BargainOrderCode { get; set; } /// <summary> /// 城市代号 /// </summary> public string CityCode { get; set; } public string ParkUserId { get; set; } public int FlowStatus { get; set; } public DateTime UpdateTime { get; set; } public int OrderStatus { get; set; } public int PayStatus { get; set; } public DateTime CreateTime { get; set; } public string ExpressCode { get; set; } /// <summary> /// 用户ID /// </summary> public int UserID { get; set; } } }
4、EF数据库连接
using System; using System.Data.Entity; namespace EFAutofacMVC.Models { public class DefaultDbContext : DbContext,IDependency { public DefaultDbContext():base("SQLConnectionString") { } /// <summary> /// 交易订单信息 /// </summary> public DbSet<TRA_BargainOrder_Test>TRA_BargainOrders{ get; set; } } }
5、仓储接口
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFAutofacMVC.IRepository { /// <summary> /// Autofac提供一个RegisterAssemblyTypes方法。它会去扫描所有的dll并把每个类注册为它所实现的接口。既然能够自动注入,那么接口和类的定义一定要有一定的规律。我们可以定义IDependency接口的类型,其他任何的接口都需要继承这个接口。 /// </summary> public interface IDependency { } }
6、Global.asax 文件配置
using Autofac; using Autofac.Integration.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Web; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace EFAutofacMVC { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); #region 自动注入 //创建autofac管理注册类的容器实例 var builder = new ContainerBuilder(); Assembly[] assemblies = Directory.GetFiles(AppDomain.CurrentDomain.RelativeSearchPath, "*.dll").Select(Assembly.LoadFrom).ToArray(); //注册所有实现了 IDependency 接口的类型 Type baseType = typeof(IDependency); builder.RegisterAssemblyTypes(assemblies) .Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract) .AsSelf().AsImplementedInterfaces() .PropertiesAutowired().InstancePerLifetimeScope(); //注册MVC类型 builder.RegisterControllers(assemblies).PropertiesAutowired(); builder.RegisterFilterProvider(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); #endregion #region 手动一个一个的进行注入 // //创建autofac管理注册类的容器实例 // var builder = new ContainerBuilder(); // //为这个容器注册它可以管理的类型 // //builder的Register方法可以通过多种方式注册类型。 // builder.RegisterType<UserInfoRepository>().As<IUserInfoRepository>(); // //使用Autofac提供的RegisterControllers扩展方法来对程序集中所有的Controller一次性的完成注册 // builder.RegisterControllers(Assembly.GetExecutingAssembly());//生成具体的实例 // //如果使用属性注入 就把上面这句改为 ////builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); // 这样支持属性注入 // var container = builder.Build(); // //下面就是使用MVC的扩展 更改了MVC中的注入方式. // DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); #endregion } } }
7 、其余就是在线安装引用ef以及autofac框架的相关包了
标签:dom tle bootstra 实体 安装 href sel bar ext
原文地址:https://www.cnblogs.com/Warmsunshine/p/9082919.html