如何在 EF-Code-First 中指定主键名称

2024-04-10

我正在使用实体框架 Codefirst 来创建我的数据库。当我通过 ODBC 连接到 Access 2007 时,模式名称为 dbo.pk_Jobs 的默认主键似乎扰乱了它。如果我手动编辑名称并删除架构名称并将该主键重命名为 pk_jobs,Access 现在可以读取该表。

我可以使用 Fluent Api、数据属性或任何其他方法指定主键名称不包含架构名称吗?

public class ReportsContext : DbContext
{
    public DbSet<Job> Jobs { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Job>().ToTable("Jobs");
        modelBuilder.Entity<Job>().HasKey(j => j.uuid);

        base.OnModelCreating(modelBuilder);
    }
}
public class Job
{
    public Guid uuid{ get; set; }
    public int active{ get; set; }
}

如果您想指定列名称并覆盖属性名称,您可以尝试以下操作:

使用注释

public class Job
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Column("CustomIdName")]
    public Guid uuid { get; set; }
    public int active { get; set; }
}

使用代码优先

    protected override void OnModelCreating(DbModelBuilder mb)
    {
        base.OnModelCreating(mb);

        mb.Entity<Job>()
            .HasKey(i => i.uuid);
        mb.Entity<Job>()
          .Property(i => i.uuid)
          .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
          .HasColumnName("CustomIdName");
    }

内部迁移配置

public partial class ChangePrimaryKey : DbMigration
{
    public override void Up()
    {
        Sql(@"exec sp_rename 'SchemaName.TableName.IndexName', 'New_IndexName', 'INDEX'");
    }

    public override void Down()
    {
        Sql(@"exec sp_rename 'SchemaName.TableName.New_IndexName', 'Old_IndexName', 'INDEX'");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 EF-Code-First 中指定主键名称 的相关文章

  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • Couchbase v6.0:更新文档内容而不重置文档过期(TTL)值

    我正在使用 Net Couchbase SDK CouchbaseNetClient Package 创建一个新文档 并在执行此操作时设置该文档的到期值 到期 TTL 值设置正确并且工作正常 问题陈述 创建文档后 我需要更新我使用 N1QL
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • string.Compare 行为

    怎么会这样呢 这是从VS2008中的立即窗口获取的 string Compare 1 string Compare 0 0 1 从言论来看字符串比较 http msdn microsoft com en us library 84787k2
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • jQuery 排序导致 iOS Safari 冻结

    我有一个页面使用 jQuery 加载 XML 文件 然后将其内容输出到页面 最近 我在输出中添加了排序功能 导致 iPod Touch 上的 Safari 挂起 1 分钟以上或 2 分钟以上 取决于我排序的字段数量 而在 iPad 上挂起不
  • 无法调试,致命信号 6 (SIGABRT) 位于 0x00007c37(代码=-6)

    我遇到了以下情况 无法调试 Android 应用程序 我可以运行它 但无法调试它 我开始了全新的项目 复制了所有内容并且它有效 意味着能够调试 但又得到了这个 我在模拟器和手机上都尝试过 但没有成功 我使用的是Android Studio
  • Angular 2 - ngShow 等效吗? [复制]

    这个问题在这里已经有答案了 根据我对文档的解释 如果我希望能够默认隐藏一个元素 并在单击链接时显示该元素 那么以下应该可以工作吗 在 app app component ts 中 newTrustFormVisible false 在 ap
  • 在哪里可以找到“Microsoft.VisualStudio.TestTools.UnitTesting”缺失的 dll?

    我的 C Visual Studio 项目中出现以下错误 命名空间 Microsoft 中不存在类型或命名空间名称 VisualStudio 是否缺少程序集引用 我还尝试查找 microsoft dll 文件 但找不到任何参考 我是否搜索了
  • 容器和包装的区别

    在编程语言 例如 Java 中 有什么区别container and wrapper 或者有什么区别 我听过这两个术语的使用都很模糊 在编程语言中这个词容器通常用于可以包含多个元素的结构 例如Map a Set or a List 这些结构
  • Python:使用正则表达式获取列表索引?

    在Python中 如何获取列表中项目的位置 使用list index 使用模糊匹配 例如 如何获取以下形式的所有水果的索引 berry在下面的列表中 fruit list raspberry apple strawberry Is it p
  • 如何处理文件名中的破折号

    在装有 Windows 7 的 PC 上 我使用一个简单的批处理脚本来重命名一些 Excel 文件 并在其父文件夹名称前面添加 for f delims i in dir b AD do cd i for f delims j in dir
  • 如何将控制台输出发送/拆分/复制到 R 中的变量中?

    如何将某些代码的输出放入变量中 我希望该输出仍然发送到控制台 我更喜欢sink符号 我不想使用capture output有两个原因 它要求相应的代码是单个函数 我不想通过创建函数来捕获输出来使我的代码复杂化 它不允许捕获的输出仍然进入控制
  • PHP - getimagesize() 重定向不起作用

    问题 getimagesize 对于某些 URL 不起作用 尤其是重定向的 URL 我用谷歌搜索并检查了 stackoverflow 但无济于事 这是我在本地计算机上看到的内容 var dump getimagesize http gan
  • VB6 应用程序调用 .NET DLL OutOfMemory 异常

    我们有一个调用 NET DLL 的 VB6 应用程序 有时 在 VB6 应用程序运行很长时间并多次调用 NET 代码后 NET 方面会抛出 OutOfMemory 异常 即使计算机上有足够的可用内存 VB6 的内存空间也远未达到极限 NET
  • lapply-ing 与“$”函数

    我正在经历一些例子 https github com hadley devtools wiki Functionals exercises 1在哈德利的泛函指南中 遇到了一个意想不到的问题 假设我有一个模型对象列表 x 1 3 y 3 1
  • 使用 Multipart/Form-Data Enctype 进行表单验证失败后,Struts 1 丢失请求参数

    我有一个简单的 Struts 表单 它有几个文本字段和一个文件字段 这enctype is multipart form data在我的表格上 我在中验证actionform的 验证方法 如果文本字段为空 我会返回错误 是必要的 除了可见字
  • 如何在 R 中查找 DTM 中的术语频率?

    我一直在使用 tm 包创建 DocumentTerm 矩阵 如下所示 library tm library RWeka library SnowballC src lt DataframeSource data frame data3 Jo
  • $Proxy$_$$_Weld$EnterpriseProxy$ 代理子类是如何实现的?

    在 Java EE 7 应用程序中 假设我有一个会话 bean 类 Stateless public class MyEJB 在 Glassfish 4 下调试时 我可以看到一个名为MyEJB Proxy Weld EnterprisePr
  • 在处理 Angular2-typescript 项目时如何在 WebStorm 中隐藏 .js 和 .map 文件

    我尝试将扩展添加到 gitignore但结果如下 这些文件并未完全隐藏 在没有内置 TypeScript 编译器的情况下使用 WebStorm 时 例如 因为您正在使用其npm start已经完成编译的脚本 并且其他方法不起作用 您可以为
  • JavaScript 中的原型继承到底是如何工作的?

    我仍然没有完全理解 JavaScript 中的继承二分法 原型与经典 If the class只是原型上的语法糖 我应该如何去糖化它 您可以向我展示使用类和原型创建 React 元素的不同方法 即没有class React createCl
  • 添加批准 Instagram 客户端的功能

    我有一个经过批准的 Instagram 客户端 即我的应用程序已通过审核并已上线 并且我想向应用程序添加新功能 我听说一些应用程序的客户被撤销 我想知道 我可以在将新功能投入生产之前主动提交新功能以获得批准吗 有人对这个有经验么 我只是想避
  • 在 twitter-bootstrap 中居中模态

    我无法将我的模态集中在各种尺寸的 twitter bootstrap 中 你可以看活生生的例子here http makeshot net v 97dcd3c and here http makeshot net v 3f467c0 只需点
  • 在 Prawn 中使用堆叠边界框时自动启动新页面

    我想在 Prawn 中模拟表格的行为 但无法使用表格 因为我可以在单元格内绘制的内容受到限制 因此 我使用边界框来为每行内的元素创建上下文 我遇到的问题与行有关 我正在尝试这个 require prawn Prawn Document ge
  • 如何在 EF-Code-First 中指定主键名称

    我正在使用实体框架 Codefirst 来创建我的数据库 当我通过 ODBC 连接到 Access 2007 时 模式名称为 dbo pk Jobs 的默认主键似乎扰乱了它 如果我手动编辑名称并删除架构名称并将该主键重命名为 pk jobs