(TL;DR 版本是底部粗体的问题)
当 Entity Framework 4.1 Code First 最初发布时(实际上是在 CTP5 时间左右),有一个名为 EFCodeFirst
的 NuGet 包。它可以与另一个名为 EFCodeFirst.SqlServerCompact
的 NuGet 包一起使用,该包允许使用 SQL Server Compact 4.0(SQL Server CE)与 EF 进行交互。
安装 EFCodeFirst.SqlServerCompact
包会生成一个名为 SQLCEEntityFramework.cs
的“引导程序”类,并将其放置在 App_Start
文件夹中。该类将设置 EF 的 Database.DefaultConnectionFactory
,并通过使用 WebActivator
包来生成其他有用方法的“存根”(如初始化、种子数据库等)。
EFCodeFirst
和 EFCodeFirst.SqlServerCompact
)已被弃用,看起来已被等效的 EntityFramework
和 EntityFramework.SqlServerCompact
替代,并且两者目前均为4.3.1版本。我的问题是,在新项目中使用这些新包时,它们似乎没有创建“bootstraper”类以便在运行时设置EF使用SQL Server Compact。当然,我可以从先前的项目中复制旧版本的类,但最好知道NuGet包仍包含该功能(可能会随时间更新)。
是否有任何方法使最新版本(本文撰写时为4.3.1)的
EFCodeFirst.SqlServerCompact
包创建 SQLCEEntityFramework.cs
启动程序类,无论是在安装后还是事后(例如通过powershell命令)?
更新:我刚刚注意到以前版本的
EFCodeFirst.SqlServerCompact
NuGet 包仍然依赖于 WebActivator
包(被引导程序类所使用), 但是这个依赖已经从最新版本和紧接在最新版本之前的版本中移除了。看起来生成引导程序类的功能已被删除,但我想知道为什么?