我正在读这本书,每次应用程序运行时它都会尝试使用初始化程序来创建数据库,所以代码片段是这样的:
protected void Application_Start() {
Database.SetInitializer(new DropCreateDatabaseAlways<MusicStoreDB>());
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
我无法理解这一部分:
new DropCreateDatabaseAlways<MusicStoreDB>()
这是什么语法? <MusicStoreDB>()
是什么意思?
我知道这不是一个奇特的问题,但我需要帮助。
感谢。
答案 0 :(得分:5)
该语法称为generics。简而言之(非常简单),想象您的应用程序有多个数据库(例如MusicStoreDB,MovieStoreDB等),您可以使用相同的DropCreateDatabaseAlways类和不同的数据库类型。换句话说,泛型让你定义可以作用于许多不同类型的类和函数,例如
List<int>, List<string>, List<MyAwesomeClass>
答案 1 :(得分:1)
DropCreateDatabaseAlways是数据库初始化程序基类。 MusicStoreDB是每次应用程序启动时都会被删除并重新创建的数据库。 DropCreateDatabaseAlways<MusicStoreDB>()
是执行该操作的代码