用于开发和生产的不同种子

2024-06-19

根据构建配置(调试/发布),使用实体框架(6+)以不同方式为数据库设定种子的推荐方法是什么?

现在我正在使用 MigrateDatabaseToLatestVersion 初始值设定项。在开发过程中,我喜欢在数据库中使用虚假数据进行测试。因此,我在 Configuration 类的 Seed 方法中创建此测试数据(该方法随启用代码优先一起提供)。但是,每次我通过构建服务器发布产品时,我都必须在种子方法中注释大量代码,提交此代码,创建版本,然后撤消所有注释以继续使用测试数据进行开发。

我想这不是要走的路。所以我希望你能告诉我正确的方法。


有很多可能性

  1. 预处理指令

一种就像你和格特·阿诺德已经讨论过的那样,使用#if DEBUG:

protected override void Seed(BookService.Models.BookServiceContext context)
{
#if DEBUG
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Test User" },
    );
#else
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Productive User" },
    );
#endif
}
  1. 配置

另一种方法是在 appsettings.json 中进行配置,也许您想使用开发数据设置应用程序,您可以添加类似的内容

{ "environment" : "development" }

并在种子中检查以下内容:

protected override void Seed(BookService.Models.BookServiceContext context)
{
    var builder = new ConfigurationBuilder();
    builder.AddInMemoryCollection();
    var config = builder.Build();

    if (config["environment"].Equals("development"))
    {
        context.Authors.AddOrUpdate(x => x.Id,
            new Author() { Id = 1, Name = "Test User" },
        );
    }
    else if (config["environment"].Equals("producion"))
    {
        context.Authors.AddOrUpdate(x => x.Id,
            new Author() { Id = 1, Name = "Productive User" },
        );
    }
}
  1. 环境变量(解决方案ASP 网络核心)

(也可以看看https://docs.asp.net/en/latest/fundamentals/environments.html https://docs.asp.net/en/latest/fundamentals/environments.html)

可以添加环境变量

enter image description here and later on via DI:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        SeedDataForDevelopment();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于开发和生产的不同种子 的相关文章

  • 实体框架 - SQL Server 2005 - IIS 服务器日期时间问题

    我正在使用 MVC3 和实体框架 在我的应用程序中 我需要通过 EF 调用 SQL Server 2005 中的存储过程来根据以下内容搜索一些数据datetime传递的参数 在当地环境中一切似乎都运行良好 但是将其托管到 IIS 后 我在尝
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 实体框架中的实体图是什么?

    我一直在研究一些实体框架教程 并且遇到了这个词实体图 我对这个术语及其用法还没有清楚的了解 任何人都可以提供有关此主题的信息 例如它是什么及其在实体框架上下文中的用途 当实例化的对象以某种关系连接在一起时 它们被称为 图或实体图 实体框架有
  • 实体框架:无需映射即可调用存储过程

    有没有一种方法可以在不使用实体框架函数映射的情况下使用存储过程 这很好 但是当向存储过程添加任何更改时 这完全是垃圾 我知道您可以刷新存储过程映射 但事实并非如此高效的 大多数时候 当您更新映射时 它不会检测到更改 这是非常烦人的 到目前为
  • 包管理器控制台中缺少文件错误

    我们的开发团队的一些成员在打开包管理器控制台时开始看到以下错误 它完全阻止我们运行实体框架命令 我们已经检查过并且提到的文件确实存在 GetEvent types ps1xml Diagnostics Format ps1xml Diagn
  • 如何以一种形式发布两个或多个模型?

    我正在为一个项目开发互联网课程计划应用程序 该课程计划是根据以下模型构建的 使用数据库优先方法中的实体框架生成 public partial class Subject public int Id get set public string
  • VS 2010 Web应用程序中的ASP.NET Web Api CRUD操作

    我尝试在 VS 2010 Web 应用程序中进行 ASP NET Web Api CRUD 操作 但为什么结果没有从源表返回所有整行 这是我的代码 路线 Globax asax protected void Application Star
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 哪一条路?数据库优先、模型优先、仅代码?

    最近我通过Pro Entity Framework 4 0这本书学习了Entity Framework 现在 我想用EF来写项目 有了这些条件 哪种方式更好更灵活 我的观点是模型优先 但我想知道你的意见 thanks 读这个 EF 4 1
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • 如何使用 WebApi2、OData 和 $expand 指定结果的形状

    当我将 OData 与特定的对象一起使用时 执行 AutoMapper 映射时遇到问题 select or expand values 使用 WebApi 操作 public IQueryable
  • 如何在T4模板中使用DbContext?

    我想使用 EntityFramework 生成一些带有 T4 模板的代码 我在与当前工作的 EF6 DbContext 相同的程序集中创建了一个 T4 模板 lt template language C hostspecific true
  • 实体框架无法删除数据库,数据库正在使用中

    我 和许多其他人一样 遇到了这样的问题 我无法让我的 NUnit 测试删除数据库中的数据库 SetUp 我的测试装置 我想要实现什么 我想编写集成测试来测试我的代码并验证预期结果是否存储在数据库中 断言 CRUD 方法 那 and我希望能够
  • EF 6 从没有导航属性的其他表中选择

    我有一个小问题需要帮助解决 我有以下情况 例如 我想选择所有养狗的学生 我有 2 张桌子 students id name petid pet id name 但是它们之间没有指定的外键 没有导航属性 虽然我有但没有指定它并且我不想要我的情
  • 重构:从自定义数据访问层切换到实体框架

    我是一名 NET 开发人员 作为重构项目的一部分 我有几个问题 我们的软件当前使用 Active Record 模式 数据对象和业务对象之间的一对一映射 不好的是业务对象继承自数据对象 导致层之间的高度耦合 我们的目标是从自定义数据访问层
  • C# LINQ to Entities 查询两个不同属性的交集

    我有 3 个模型 名称为 Pencil具有 Pencil Id int 和 Pencil Colors IEnumerable 属性 Pen具有 Pen Id int 和 Pen Colors IEnumerable 属性 Colors有身
  • 如何使用实体框架对象上下文执行事务?

    我使用 Entity Framework 4 创建了一个非常简单的数据库 我希望能够在实体上使用事务 但我似乎无法阻止更改回滚 我真的只需要一种方法来放弃对实体的临时更改 然后再将其保存到数据库中 例如 以下代码使用实体框架对象上下文 Mu
  • 无法将 null 值插入列...当值不为 null 时

    在我的 C 代码中 我在数据库中有一个插入 但它引发了异常 无法将 NULL 值插入表 Moroccanoil Replicated dbo Boxes 的 BoxID 列 列不允许为空 插入失败 然而 在调试这段代码时 我发现该框实际上不
  • 仅 LINQ to Entities 中的排序输入支持“Skip”方法。必须在方法“Skip”之前调用方法“OrderBy”

    Using 实体框架6 0 2 and NET 4 5 1 in Visual Studio 2013 更新 1 with a DbContext连接到 SQL Server 我有一个很长的过滤器链 我正在根据调用者的期望结果将其应用于查询
  • 在实体框架中不使用 Dispose 或 using()

    我一路上正在编写一个网络应用程序并学习实体框架 如果我做错了什么 我很好奇 我在查询时没有使用过 dispose 或 using 语句 我的存储库示例 public User GetUserById int sessionId var us

随机推荐

  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • Python Selenium 打印另存为 PDF 等待文件名输入

    我正在尝试通过打印对话框将网站另存为 PDF 我的代码允许我另存为pdf 但要求我输入文件名 我不知道如何将文件名传递到弹出框 附上我的代码 import time from selenium import webdriver import
  • 当页面上已有tinymce实例时,动态添加tinymce编辑器

    这是我已经问过的这个问题的后续 动态添加tinymce编辑器 https stackoverflow com questions 19157574 add a tinymce editor dynamically 我有一个包含编辑器的页面
  • 具有材料设计的Angularjs无法实例化模块ngMaterial

    我已经使用 Bower 安装了 AngularJS 和 MaterialJS 凉亭安装角材料 并将 ngMaterial 注入我的应用程序 但出现此错误 Uncaught Error injector modulerr Failed to
  • 限制数据框中所有单元格的字符串长度?

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50
  • 如何修复 Android 7.0 的 Spinner 模式下的 DatePickerDialog?

    我目前正在开发一个简单的项目 其中包含一个包含在 Web 视图中的网站 具有少量交互 以提高网站本身和 Android 移动设备之间的交互性 由于该网站包含用户生日的日期输入字段 因此我希望实现一个与所有设备兼容的旋转格式的日期选择器 我尝
  • 使用 Gradle 进行 Travis-CI Android 测试总是超时

    我正在尝试在 Travis CI 上构建和测试我的项目 它每次都会在我的所有存储库上向我显示相同的重复输出 这是我的 travis ymlhttps github com carts uiet cartsbusboarding blob m
  • 动态表中每个按钮的 Jquery-Ui 对话框表单

    我正在生成一个 HTML 表 每行都有一个按钮 必须打开 Jquery ui 对话框表单 The table table class table table reporting table condensed table striped t
  • 通过 jquery/javascript 在警报或确认对话框中单击“确定”?

    我正在考虑在backbone js 和jquery 中编写一些UI 测试 它们可能不是最好的方法 但这是我正在考虑的事情 通过纯代码自动化测试而无需记录和回放 使用这种方法唯一让我摸不着头脑的是 在某些 用例流程 执行的 中 会出现确认 警
  • 使用 Pandas 从 csv 文件读取标题信息

    我有一个包含 14 行标题的数据文件 在标头中 有经纬度坐标和时间的元数据 我目前正在使用 pandas read csv filename delimiter header 14 读取文件 但这只是获取数据 我似乎无法获取元数据 有人知道
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • 新标签页和浏览器窗口中的 CSRF 令牌

    我通过以下方式在我的nodejs服务器上实现了CSRF攻击预防 登录时的用户会收到 CSRF 令牌和 cookie 存储在 cookie 中的基于 JWT 的令牌 CSRF 令牌将成为客户端发送的所有未来请求标头的一部分 ajaxSetup
  • 即使通过 ssl,在 ViewState 中存储信用卡和定价信息是否安全?

    我有一个带有私有属性的页面 该页面在视图状态中存储信用卡对象和购物车对象 以便我可以在回发期间维护对它们的引用 顺便说一句 涉及的页面将使用 SSL 这安全吗 我不会在视图状态中存储敏感信息 ever 通过这样做 您将安全性委托给浏览器的实
  • 如何在默认浏览器或webview中打开按钮点击url

    我怎样才能打开一个网址webview或者点击按钮后在默认浏览器中 目前 当我单击btn1按钮 它提示我从手机中选择一个浏览器 我想在默认浏览器或其他浏览器中打开此网址webview 这是我的java代码 public class myact
  • 使用 Oid/ASNEncodeData 创建 PublicKey 会抛出 CryptographyException

    我正在尝试使用 Oid 和 RSA 公钥创建 PublicKey 实例 但收到带有 ASN1 bad tag value met 的 CryptographyException 我正在关注找到的答案here https stackoverf
  • 如何使用ilMerge将dll合并到exe文件中?

    I tried C Windows System32 gt ilmerge target winexe out c output exe c MyProgram exe c Microsoft WindowsAPICodePack dll
  • 如何用函数记录一个文件?

    我有一个带有函数 lib py 但没有类的python 文件 每个函数都有以下样式 def fnc1 a b c This fonction does something param a lalala type a str param b
  • TestFlight 提供反馈按钮

    我正在使用 iOS 8 的最新 testflight 版本 我将自己添加为内部测试人员 现在当我使用 testflight 打开应用程序时 我找不到反馈按钮 如果有人有任何线索 请告诉我 您在 Testflight 应用程序中提供反馈 打开
  • SFML 纹理显示为白框

    我在基类中有一个纹理和精灵 正在由另一个类扩展 但是在绘制时 精灵显示为白色框 我知道这与精灵失去与纹理对象的链接有关 但我对 C 有点陌生 所以我不太确定它是如何发生的 这是代码 我删除了一些不相关的部分以减少大小 拾取 h ifndef
  • 用于开发和生产的不同种子

    根据构建配置 调试 发布 使用实体框架 6 以不同方式为数据库设定种子的推荐方法是什么 现在我正在使用 MigrateDatabaseToLatestVersion 初始值设定项 在开发过程中 我喜欢在数据库中使用虚假数据进行测试 因此 我