gpt4 book ai didi

entity-framework - 如何为 Entity Framework 4.3 和 SQL Server Compact 4.0 创建 Bootstrap 类

转载 作者:行者123 更新时间:2023-12-04 08:30:27 25 4
gpt4 key购买 nike

(TL;DR 版本是底部加粗的问题)

最初发布 Entity Framework 4.1 Code First 时(实际上是 CTP5 左右的时间),有一个 NuGet名为 EFCodeFirst 的包。这可以与另一个名为 EFCodeFirst.SqlServerCompact 的 NuGet 包结合使用,后者允许将 EF 与 SQL Server Compact 4.0 (SQL Server CE) 结合使用。

安装 EFCodeFirst.SqlServerCompact 包将搭建脚手架,或在 App_Start 文件夹中生成名为 SQLCEEntityFramework.cs 的“ Bootstrap ”类,该类将通过使用 WebActivator 设置诸如 EF 的 Database.DefaultConnectionFactory 以及为其他有用方法(初始化、播种数据库等)生成“ stub ”包裹

这两个包 (EFCodeFirstEFCodeFirst.SqlServerCompact) 现已弃用,似乎已被 EntityFramework 的等效包取代& EntityFramework.SqlServerCompact目前都是 4.3.1 版本

我的问题是,在新项目中使用这些新包时,它们似乎没有创建“bootstraper”类来设置 EF 以在运行时使用 SQL Server Compact。当然,我可以从以前的项目中复制旧版本的类,但很高兴知道 NuGet 包仍然包含此功能(可能会随着时间的推移而更新)。

有什么方法可以获取 EFCodeFirst.SqlServerCompact 包的最新版本(撰写本文时为 4.3.1)以创建 SQLCEEntityFramework.cs Bootstrap 类,安装时或安装后(可能通过 powershell 命令?)?

更新:
我刚刚注意到 a previous version of the EFCodeFirst.SqlServerCompact NuGetPackage 仍然依赖于 WebActivator 包(由 Bootstrap 类利用)但是这种依赖性已从 latest version 中删除和 one immediately preceding the latest version .看起来生成 Bootstrap 类的功能已被删除,但为什么我想知道?

最佳答案

在 EF 4.1 中,让 Code First 按照约定(即不显式指定连接字符串)创建 SQL Server Compact 数据库的唯一方法是在代码中设置 DefaultConnectionFactory。这是有问题的,因为需要知道正在使用哪个数据库的工具(例如迁移)不知道此代码是否存在。)

在 EF 4.3 中,我们在 web.config 文件中添加了执行此操作的功能。 EntityFramework.SqlServerCompact 包通过将 SQL Conmpact 设置为 Web 配置中的默认连接工厂来利用它。因此它不需要使用 WebActivator 或使用代码来设置它。

如果您愿意,您仍然可以使用代码方法,但请注意,迁移之类的东西可能无法正常工作,我们鼓励您改用配置文件。

关于entity-framework - 如何为 Entity Framework 4.3 和 SQL Server Compact 4.0 创建 Bootstrap 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com