Code First 实体框架为主键列名称添加下划线

2024-03-22

我有一个域类的流畅映射,它定义了每列的名称,包括由两列组成的主键,NotificationId 和 IdentityId。这些也是分别指向Notification.Id和Identity.Id的外键。每当我使用此映射作为查询的一部分时,它都会生成一个 sql 查询,该查询在通知和 Id (Notification_Id) 之间有一个下划线,该查询在我的映射中没有提及。

我希望可能有一些约定表明主键或外键应该像这样,但考虑到我已经明确告诉它NotificationId 的列名是什么,这似乎很奇怪。

任何帮助,将不胜感激。

添加了映射文件

public class Notifications_IdentitiesMap : EntityTypeConfiguration<Notifications_Identities>
{
    public Notifications_IdentitiesMap()
    {
        ToTable("Notifications.Notifications_Identities");
        HasKey(x => new { x.NotificationId,x.IdentityId });
        Property(x => x.IdentityId).HasColumnName("IdentityId").HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        Property(x => x.NotificationId).HasColumnName("NotificationId").HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        Property(x => x.SendAttempts).HasColumnName("SendAttempts");
        Property(x => x.IsSent).HasColumnName("IsSent");
        Property(x => x.LastSendAttempt).HasColumnName("LastSendAttempt");
        HasRequired(x => x.Notification).WithMany().HasForeignKey(x => x.NotificationId);
        HasRequired(x => x.Identity).WithMany().HasForeignKey(x => x.IdentityId);
    }
}
public class Notifications_Identities
{

    public Notifications_Identities()
    {

    }
    public Notifications_Identities(Notification notification, int identityId)
    {
        Notification = notification;
        IdentityId = identityId;
    }
    public virtual int IdentityId { get; set; }
    public virtual int NotificationId { get; set; }
    public virtual int SendAttempts { get; set; }
    public virtual DateTime? LastSendAttempt { get; set; }
    public virtual Identities.Identity Identity { get; set; }
    public virtual Notification Notification { get; set; }
    public bool IsSent { get; set; }
}
public class NotificationMap:EntityTypeConfiguration<Notification>
{
    public NotificationMap()
    {
        ToTable("Notifications.Notifications");
        Property(x => x.Id).HasColumnName("Id");
        Property(x => x.Subject).HasColumnName("Subject").HasMaxLength(255);
        Property(x => x.Message).HasColumnName("Message");
        Property(x => x.TypeId).HasColumnName("TypeId");
        Property(x => x.DateCreated).HasColumnName("DateCreated");
        Property(x => x.CreatorIdentityId).HasColumnName("CreatorIdentityId");

        HasRequired(x => x.Creator).WithMany().HasForeignKey(x => x.CreatorIdentityId);
    }
}
public class IdentityMap : EntityTypeConfiguration<RM.Domain.Identities.Identity>
    {
        public IdentityMap()
        {
            Property(x => x.Id).HasColumnName("IDENTITYID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            Property(x => x.FirstName).HasColumnName("firstname");
            Property(x => x.Surname).HasColumnName("surname");
            Property(x => x.Username).HasColumnName("username");
            Property(x => x.IsGroup).HasColumnName("is_group");
            Property(x => x.EmailAddress).HasColumnName("email");
            Property(x => x.ActiveDirectoryId).HasColumnName("ActiveDirectoryId");
            Property(x => x.IsLive).HasColumnName("is_active");
            ToTable("dbo.rm_tbl_IDENTITY_Identities");
        }
    }

我犯了一个愚蠢的错误,找到了答案实体框架 4.1 代码优先外键 ID https://stackoverflow.com/questions/5656159/entity-framework-4-1-code-first-foreign-key-ids

我添加了以下内容:

public virtual ICollection<Notifications_Identities> Identities { get; set; }  

到通知实体并且没有映射它

解决办法是改变

HasRequired(x => x.Notification).WithMany().HasForeignKey(x => x.NotificationId);

to

HasRequired(x => x.Notification).WithMany(x=>x.Identities).HasForeignKey(x => x.NotificationId);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Code First 实体框架为主键列名称添加下划线 的相关文章

  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 在哪里使用 EF6 订阅 ObjectMaterialized?

    我正在尝试将我的上下文订阅到以下 OnjectMaterialized 事件this https stackoverflow com a 3756842 2835713 像这样 IObjectContextAdapter this Obje
  • 实体创建无用的 id 字段

    我有一个CrudRepository与两个实体 Problem 特征实体总是创建一个附加的id数据库中的字段但未选择正确的characteristic id要生成的字段JSON machine entity machine id name
  • 使用左连接获得不适当的输出

    我正在尝试获取变体列表 并且对于每个变体都获取所有subvariants list无论子变体属于何处 特别的Test say 100 这是示例数据 Id TestId SourceSubVariantId TargetSubVariantI
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • 实体框架:在运行时更改连接字符串

    假设有一个 ASP NET MVC 应用程序使用 Entity Framework 6 和代码优先方法以及 StructureMap 作为 IoC 它还使用工作单元模式 域类 public class Product public int
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • 实体框架 - 从 ObjectContext 查询与从导航属性查询

    我注意到 根据从实体框架模型中提取数据的方式 我会得到不同类型的结果 例如 获取特定部门的员工列表时 如果我直接从 ObjectContext 中提取 我会得到一个IQueryable
  • Linq 连接两个值

    假设我有一个列表 City State 它最初来自数据库 我有LocationID 但现在我将它加载到内存中 假设我还有一张快餐店表 其中记录了城市和州 我需要获取与城市和州相匹配的机构列表 注意 我尝试描述一个简化的场景 我的业务领域完全
  • .ToList()、.AsEnumerable()、AsQueryable() 之间有什么区别?

    我知道第一个实现的 LINQ to Entities 和 LINQ to Objects 的一些区别IQueryable第二个实现IEnumerable我的问题范围在EF 5以内 我的问题是这 3 种方法的技术差异是什么 我发现在很多情况下
  • 在 MVC 类上创建主键字段

    我是 MVC 和 C 新手 我只是偶然发现它并发现它很有趣 我遇到了一个不允许我继续的问题 这是我的代码 using System using System Collections Generic using System Linq usi
  • 自数据库创建以来,支持“ApplicationDbContext”上下文的模型已发生更改

    首先 我在其他地方没有看到这个错误 我想这不是重复的 所以请先阅读整个情况 一切都工作得很好然后我尝试更新我的模型类之一 the 应用类现在更新已被评论 我将在下面列出 我遇到了这个丑陋的错误 自创建数据库以来 支持 Application
  • 如何检查 EntityTypeConfiguration 实例的成员配置?

    我正在使用 Entity Framework Code First 和继承自 EntityTypeConfiguration 的映射类 我这样做是为了封装我使用 Code First Fluent API 来配置实体的方法 我希望能够检查这
  • 如何使用 Entity Framework 和 Moq 进行单元测试?

    我是 Moq 新手 希望将其用作数据后备存储 但不接触实时数据库 我的设置如下 UnitOfWork 包含所有存储库 并用于整个应用程序中的数据访问 Repository 代表 DbSet 的直接挂钩 由 DbContext 提供 DbCo
  • 如何更改隔离级别?

    我正在使用 EF 4 0 并且我想使用隔离级别serializable 因为在事务中我想在读取时阻止寄存器 好吧 在 SQL Server 中 我尝试使用以下命令更改隔离级别 SET TRANSACTION ISOLATION LEVEL
  • 我们可以使用枚举作为类型安全的实体 ID 吗?

    我们正在 EF 6 1 代码优先设置中使用一个相当大的模型 并且我们使用整数作为实体 id 不幸的是 这并不像我们希望的那样类型安全 因为人们很容易混淆 id 例如比较不同类型的实体的 id myblog Id somePost Id 或类
  • 如何解决 EF 5 Code First 中组合的一对一和一对多关系

    我正在使用 Entity Framework 5 和 Code First 我有两个域实体Question and Answer用于测验应用程序 一个问题有多种可能的答案 问题也有一个正确答案 应引用可能的答案之一 我在实体之间的一对多和一
  • SaveChangesAsync 不更新数据库表中的值

    这是我的桌子 统计数据 Id Depth RefreshCounter 样本记录 Id Depth RefreshCounter 1 1 1 2 1 0 3 1 0 4 1 0 现在我需要做的是 每当我刷新页面时 我需要在深度为 1 的数据

随机推荐

  • 如何替换 JUnit 5 中的 WireMock @Rule 注释?

    我在测试中使用 WireMock 并有这样一行代码 Rule public WireMockRule wireMockRule new WireMockRule 8080 我想切换到 JUnit 5 所以我添加了下一个依赖项 使用 Grad
  • C++ 数组中对象的多态性

    我是一名嵌入式软件工程师 来自位和 C 世界 在那个世界里 闪存中有数据 用C语言的const表示 RAM中有数据 RAM 昂贵且有限 而闪存则便宜且足够 此外 由于碎片问题或安全规定 不允许使用 new delete malloc 等动态
  • 创建并加载用于 openGL 的 RGBA4444 RGBA5551 中的 .png

    我正在创建一个 openGL 游戏 到目前为止 我一直在使用 RGBA8888 格式的 png 作为纹理表 但这些太占用内存了 而且我的应用程序经常崩溃 我在 Apple 网站上读到 这种格式仅在需要太多质量时才使用 并建议使用 RGBA4
  • R 赋值的 Python 等价物

    在 R 中 我可以使用assign https stat ethz ch R manual R devel library base html assign html动态地为环境中的名称分配一个值 而不是 lt Example gt ass
  • Rails 5“gemify”资产清单文件

    Update 在工作状态下得到这个 宝石可以在这里找到 https github com jakehockey10 popcircle https github com jakehockey10 popcircle 原帖 我正在尝试将 jq
  • 加载 ember.js 对象时,动画 gif 暂停

    当 ember js 正在做它的事情时 旋转器实际旋转时遇到问题 我有一个非常通用的 jsfiddle 示例来说明这个问题 http jsfiddle net h4ZcZ 2 http jsfiddle net h4ZcZ 2 我认为必须有
  • CSS3 非线性动画路径

    如何使用 css3 制作非线性动画 基本上 如果我需要从视口中取出一个盒子 并且它是一条直线向下的路径 那么使用以下代码就很容易做到 transition transform 0 5s ease in And some JS to trig
  • SoX 使用 ProcessBuilder 运行缓慢

    我正在使用 java 中的 ProcessBuilder 来运行 SoX 它将 WAV 文件修剪为 30 秒长的 WAV 文件 SoX 正在运行 因为我可以成功修剪文件的前 30 秒并将其保存为新文件 但它停在那里 但它仍在运行 这是命令生
  • 在存储到 mysql 数据库之前压缩文本

    我正在使用 php 和 MySQL 开发一个 Web 应用程序 在存储在 MySQL 数据库中 在数据库中存储压缩形式的文本之前 我使用 gzcompress php 函数压缩文本 我的问题是这样可以吗 存储压缩形式 或者这个方法会不会给我
  • 使用 Android 相机进行图像处理

    我想使用 onPreviewFrame 在将图像显示给用户之前对其进行后处理 即应用色调 棕褐色等 据我了解 返回给回调的 byte 数据以 YUV420sp 编码 人们是否已经在 J ava 中或使用 NDK 本机代码 将其解码为 RGB
  • Scala dropWhile 与过滤器

    val xs Iterator from 1 dropWhile 2 0 takeWhile lt 10 toList val ys Iterator from 1 filter 2 0 takeWhile lt 10 toList pri
  • 如何用python生成a-z范围内的随机值

    我有 python 代码 它将生成随机值 例如 JAY5uFy4F 这是我运行 python 脚本时的第一个输出 这是我的代码 a n 1 c 1 c2 3 Start 10 n 1 End 10 n 1 while 1 Num rando
  • “无法找到一组匹配的功能”——Selenium 与 Python 2.7

    将 Selenium 3 8 1 与 Python 2 7 和 Firefox Portable 54 64 位结合使用 运行此脚本时收到以下错误消息 from selenium import webdriver from selenium
  • 了解 Azure Functions 高级计划计费

    我一直在阅读有关此问题的各种文档 但无法清楚地确认我的理解 我们正在评估 Azure Functions Premium Plan 并希望对成本有更清晰的了解 我的理解如下 在高级计划中 我们可以配置最小实例数和突发大小 这是高级计划实例的
  • Android SDK 管理器下载完成后校验和错误?

    I am using Android SDK Manager revision 23 0 5 I tried to update some SDK but got this errors I tried a lot of times And
  • 测量Java中单链表的大小/长度?

    我需要帮助int size Java 中单向链表的方法 这是我到目前为止所拥有的 但它没有返回列表的正确大小 public int size int size 0 Node CurrNode head while CurrNode next
  • 如何限制 Sinatra/Active Record 中数据库字符串值的字符/字数?

    我的专栏里有一个ActiveRecord我想要有一定字数限制的数据库 本质上 我创建了一个允许用户输入文本 字符串 的表单 我想限制该字符串中允许的字符数 allposts Post limit 20 这是我到目前为止在 get 方法中所拥
  • 使用服务名称在 docker-compose React 容器中调用 API 到 django 容器

    我有一个 docker compose 其中包含一个 React 应用程序和其他 django 容器 它们位于同一网络中 因此当我尝试使用服务名称从 React 容器向其中一个 django 服务发出curl 请求时 它可以工作 但在 We
  • 如何强制 XmlWriter 正确处理命名空间?

    我想使用 XmlWriter 编写类似这样的内容 全部在一个命名空间中
  • Code First 实体框架为主键列名称添加下划线

    我有一个域类的流畅映射 它定义了每列的名称 包括由两列组成的主键 NotificationId 和 IdentityId 这些也是分别指向Notification Id和Identity Id的外键 每当我使用此映射作为查询的一部分时 它都