实体框架 - 使用多列索引作为标识符的种子 AddOrUpdate

2024-01-09

我正在尝试使用以下方式播种数据库context.AddOrUpdate方法,但问题是我需要基于多列索引使插入的数据唯一。

[Table("climbing_grades")]
public class ClimbingGrade : EntityBase
{
    /// <summary>
    /// The name of the climbing grade, e.g.: 7a, VII, etc.
    /// </summary>
    [Index("IX_Name_GradeType", 1, IsUnique = true)]
    public string Name { get; set; }

    /// <summary>
    /// Tries to display the average difficulty of the described grade.
    /// Matching the different grades can be difficult because its always
    /// a subjective rating and there exists no norm on converting grades.
    /// </summary>
    public double Difficulty { get; set; }

    /// <summary>
    /// The type of the grade. Will be the respective region rating.
    /// e.g.: UUIA for most oft europe, YSD for USA, etc.
    /// </summary>
    [Index("IX_Name_GradeType", 2, IsUnique = true)]
    public ClimbingGradeType GradeType { get; set; }
}

目前我AddOrUpdate基于Name攀登等级,但现在我需要插入重复的名字。

context.ClimbingGrades.AddOrUpdate(grade => /* Compare multi column index here?*/,
    new ClimbingGrade
    {
        Name = "5a",
        Difficulty = 4.75,
        GradeType = ClimbingGradeType.FontainebleauBloc
    },
    new ClimbingGrade
    {
        Name = "5a",
        Difficulty = 4.25,
        GradeType = ClimbingGradeType.FontainebleauTraverse
    });

插入种子数据时是否可以比较多列索引?


您需要使用匿名类型来指定多个列。这在不指定索引的情况下也有效。

context.ClimbingGrades.AddOrUpdate(grade => new { grade.Name, grade.GradeType },
    new ClimbingGrade
    {
        Name = "5a",
        Difficulty = 4.75,
        GradeType = ClimbingGradeType.FontainebleauBloc
    },
    new ClimbingGrade
    {
        Name = "5a",
        Difficulty = 4.25,
        GradeType = ClimbingGradeType.FontainebleauTraverse
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 - 使用多列索引作为标识符的种子 AddOrUpdate 的相关文章

  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • ADO EF Code First 通用中间类继承映射

    我有以下要求 该要求在 OO 空间中运行良好 但我似乎无法首先使用 ADO EF 代码将其映射回数据库 我有许多产品 每个产品都有不同的方面 属性 但不是代码属性意义上的 例如 戒指将具有矿物类型 金等方面 而钻石将具有净度方面 VVSI1
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0

随机推荐

  • QSplitter 显示两个小部件之间的分隔线或边距

    我有一个 QSplitter 和两侧的两个小部件 但我希望能够有一个边距 以便两个小部件之间有清晰的过渡 我查看了 QSplitter 和 QSplitterHandle 但没有看到任何明确的方法来执行此操作 如何在两个小部件之间添加分隔线
  • 从 Javascript 访问 Chrome 的内部 gzip 例程

    所有现代浏览器都包含用于与服务器交换压缩数据的 gzip 例程 谁能给我指出正确的方向来编写一个允许 Javascript 利用这个例程的 Chrome 扩展 我想在通过 WebSocket 将一些数据发送到服务器之前先用 Javascri
  • 如何设置基于注释的路由翻译?

    我网站的所有路由都是基于注释来实现的 现在 我想翻译我的路由 为了实现这一点 我尝试使用捆绑包JMSI18n路由包 https github com schmittjoh JMSI18nRoutingBundle 然而 文档没有给出任何如何
  • SQLite3 忽略重音符号

    如何在 SQLite3 上使用 LIKE 子句进行 SELECT 忽略重音符号 PS 这是为了Android内置的SQLite支持 有一个解决方案 它并不优雅 但可以在 Android 上运行 REPLACE 函数可以用普通字符替换重音字符
  • 将部分接口类型的对象转换为 TypeScript 中的“完整”接口类型

    假设我有一个界面A看起来像这样 interface A prop1 string prop2 string 我初始化对象obj像这样 const obj Partial a prop1 xyz 有什么办法可以投吗obj to A并自动设置未
  • R studio 列表和数据框自动名称完成不再工作

    突然 R Studio 在输入时停止自动完成我的列表和数据框内容mylist 然后按Tab 我得到的结果消息是 无匹配 我在非常简单的列表或数据框上尝试过 例如 simpledataset lt data frame a rep 0 100
  • 来自 Microsoft 文档的 C# String.Length

    微软文档指出 https msdn microsoft com en us library system string length 28v vs 110 29 aspx该代码将返回 7 个字符 Length 属性返回此实例中 Char 对
  • 如何从 iframe src 获取哈希值?

    当我执行 iframe src 时 我的 iframe 有一个带有哈希值的 url 它只是为我提供了 url 而没有从其他域附加哈希值 我可以读取带有哈希值的整个网址吗 由于安全限制不太可能 我很惊讶你甚至可以获得 URL 你能显示代码吗
  • 动态创建变量

    我曾尝试过学习Python org https www learnpython org en Hello 2C World 21要动态创建变量 可以按如下方式创建 food bread vars food asdasd print brea
  • OAuth 2.0 - 何时应使用刷新令牌更新访问令牌?

    我目前正在使用 OAuth 2 0 访问 Google API 根据我的理解 我应该使用返回的刷新令牌来更新访问令牌 是否应该在过期之前刷新 还是应该在用户使用已过期的访问令牌从 api 请求数据时刷新 如果应该在过期之前完成 我是否应该运
  • 断言在 Python 单元测试中调用了某个方法

    假设我在 Python 单元测试中有以下代码 aw aps Request nv1 aw2 aps Request nv2 aw 有没有一种简单的方法来断言特定方法 在我的例子中aw Clear 在测试的第二行期间被调用 例如有没有这样的事
  • 从大文件中分块数据进行多重处理?

    我正在尝试使用多处理并行化应用程序 该应用程序接受 一个非常大的 csv 文件 64MB 到 500MB 逐行进行一些工作 然后输出一个小的固定大小 文件 目前我做一个list file obj 不幸的是它已完全加载 进入内存 我认为 然后
  • ASP.NET 5 Web 项目和实体框架位于单独的项目中

    从哪里开始 这已经困扰我一整天了 我已更新我的项目以使用新的 ASP NET 5 空预览模板 我已经成功构建了所有项目 但是当我运行我的网站时 出现此错误 当前运行时目标框架不兼容 我的 WEB 命名空间 当前运行时目标框架 DNX 版本
  • 应用程序与 Nexus 7 和 Acer Iconia a210 不兼容

    我知道这个问题已经被问过几次了 但为什么我的应用程序与 Nexus 7 和 Acer Iconia a210 不兼容 我在现有问题中没有找到可行的解决方案 那么我还可能缺少什么
  • 等待直到通过 webClient 从 URL 下载文件

    我很难从 URL 下载几 MB 的 excel 文件然后使用它 我使用VS2010所以我不能使用await关键字 我的代码如下 using WebClient webClient new WebClient setting Windows
  • 动态生成单选按钮

    我有一个 redux 表单 其中包含一些单选按钮
  • ubuntu 上的 codeigniter 问题

    我在 Ubuntu 10 LAMP 上安装了 Codeigniter 我有一个 htaccess 文件
  • 为什么 iPad 上只能嵌入 YouTube?

    我试图找出为什么 YouTube 嵌入在 iPad 上运行良好 而不是任何其他视频网站的嵌入 YouTube 嵌入示例
  • 必须了解机器架构才能编写代码吗?

    假设我正在用 Java 或 Python 或 C 编程解决一个简单的问题 可能是构建 TCP UDP 回显服务器或阶乘计算 我是否需要关心架构细节 即它是 32 位还是 64 位 恕我直言 除非我正在编程一些与相当低级的东西有关的东西 否则
  • 实体框架 - 使用多列索引作为标识符的种子 AddOrUpdate

    我正在尝试使用以下方式播种数据库context AddOrUpdate方法 但问题是我需要基于多列索引使插入的数据唯一 Table climbing grades public class ClimbingGrade EntityBase