关于路由:
路由信息不在Global.asax里,在APP_Start/RouteConfig.cs里面配置
RouteConfig.cs 里面通常有一句:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");//忽略所有的axd资源文件,axd文件跟ashx文件类似,都实现IhttpHander
其实后缀名.axd 就是一个ashx一样的weweb handler,实现接口IHttpHandler的方法。
关于CodeFirst :
1.WebConfig里会自动给你写入一个配置
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcApplication1-20150119122007;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcApplication1-20150119122007.mdf" />
name属性一定要跟你的DBContext类的类名一样,否则无法自动创建数据库
DataSource 最好改成你自己用的地址(一般"."就可以)
Initial Catalog数据库名会给你一个自动生成的,最好改成你自己要的数据库名就成(要是测试的话无所谓),因为会重新生成一个全新的数据库,所以最好数据库不要有同名数据库
AttachDBFilename数据库文件,|DataDirectory|这个是指当前项目的App_Data文件夹,不修改的话创建好的数据库就在这里面,当然,你也可以改成其它路径
2.CodeFirst中修改Model
VS2012 工具→库程序包管理器→程序包管理器控制台 :
输入Enable-Migrations(Tab键提示),会在项目中生成Migrations文件夹,修改Migrations/Configuration.cs 构造方法,加入
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
输入Update-Database(Tab键提示),执行~
再到Global.asax Application_Start方法添加
System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<Models.CRMEntities, Migrations.Configuration>());
其中
Models.CRMEntities是项目中数据上下文(即继承DbContext的类)
关于DbContext: