Edmx 需要 Primary_Key 吗?

2024-03-26

在 .net 中创建 Edmx 时,在创建数据库的 Edmx 时,仅添加具有主键的表和视图,这是一个问题。
这个问题很容易解决,但只需在表或视图中创建列主键,但我不知道为什么有必要?
谁能解释一下其背后的原因吗?


实体框架需要一个主键来正确地将一条数据标识为在特定数据集中唯一的。这取决于它如何在内部查找实体并为您提供尽可能最佳的性能。

例如,实体框架的功能之一是更改跟踪,它将添加、删除、修改和未更改实体的集合保存在一系列定义为的集合中Dictionary<EntityKey, EntityEntry>。为了能够有效地处理这些集合,它需要一个密钥来及时对这些集合执行必要的 CRUD 操作,因此,它需要该密钥。

Update:

还有一个无键对象的集合,但它的定义为Dictionary<object, EntityEntry>它的查找性能非常糟糕,因为需要对键进行强制转换(如果键是值类型则将其拆箱)才能使用。

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

Edmx 需要 Primary_Key 吗? 的相关文章

  • 在 Azure 上运行 .NET 应用程序

    我拥有在 Amazon EC2 上运行应用程序的丰富经验 它需要一台低端服务器 我目前为该服务器支付大约 90 美元 月 是的 我知道我并不真正需要可扩展性 但我仍然使用 EC2 我想知道将这个纯粹的 NET 应用程序迁移到 Microso
  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • KeyValuePair - 没有无参数构造函数?

    我有一个具有 KeyValuePair 类型属性的对象 我想从数据库读取一些数据并将结果存储在这个 KeyValuePair 类型字段中 myObject KeyValuePairs ctx ExecuteQuery
  • WCF WebHttp 混合身份验证(基本和匿名)

    所有这些都与 WebHttp 绑定有关 托管在自定义服务主机中 IIS 目前不是一个选项 我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy 当我将端点的绑定配置为使用
  • Asp.net core默认路由

    简化版Startup code public void ConfigureServices IServiceCollection services services AddMvc public void Configure IApplica
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 为什么有些控件同时具有BackgroundImage和Image属性?

    为什么有些控件喜欢Button or PictureBox两者都有BackgroundImage and Image财产 为什么在按钮的情况下需要它们两个 或者为什么在图片框中背景图像应该可用 BackgroundImage继承自Contr
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • project.json 等效于 InternalsVisibleTo

    Net Core 的项目 json https learn microsoft com en us dotnet articles core tools project json copyright允许配置传统 Net 应用程序使用通常放置
  • Lightspeed 与 NHibernate

    有什么体验光速 http www mindscape co nz products LightSpeed comparison aspx Mindscape 提供的比较并没有过多说明 NHibernate Lightspeed 看起来很灵活
  • 如何为 LINQ 查询构建动态 FROM 子句?

    我有一个标准 LINQ 查询 var list from x in SomeDataContext ViewName where Rest of where clause select x 我想知道是否可以构建动态 LINQ 查询 以便我可
  • 点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面

    我刚刚发现 当我单击任何 ASP NET MVC 页面上的浏览器后退按钮时 没有任何反应 并且页面不会更新 并且只有当您单击 F5 时才会更新 主要问题是我对页面的 DOM 进行了一些更改 即添加表格行 选择单选按钮等 当我通过点击浏览器后
  • C# 转换为小数

    如果有的话 有什么区别 decimal d decimal myDouble decimal d new decimal myDouble decimal d Convert ToDecimal myDouble 没有区别 如果你看一下源码
  • 如何在没有 Startup 类的情况下以编程方式启动 .NET 6 最小 API

    我正在尝试对我们的提供商项目实施 PactNet 合同测试 然而问题是 我们使用的是 Minimal API 因此我们没有将 Startup cs 和 Program cs 类全部整合到一个 Program cs 中 这提出了一个问题 因为
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么
  • Python tkinter.filedialog Askfolder 干扰 clr

    我主要在 Spyder 中工作 构建需要弹出文件夹或文件浏览窗口的脚本 下面的代码在spyder中完美运行 在 Pycharm 中 askopenfilename工作良好 同时askdirectory什么都不做 卡住了 但是 如果在调试模式
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 使用 EF6 连接到 SQL Server

    在 EF5 之前 为了连接到 SQL Server 2012 我所需要做的就是指定一个如下所示的连接字符串 Data Source SqlExpress Initial Catalog MyDatabase Integrated secur
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr

随机推荐

  • 按一天中的时间自动切换 Windows 10 中的暗/亮模式(无需修改或更改主题!)

    如今大多数设备都允许自动切换暗 亮模式 但 Windows 10 似乎没有这样的功能 有办法做到这一点吗 例如使用任务计划程序 似乎有很多关于如何以编程方式更改窗口 主题 的示例 但没有关于亮 暗模式切换的示例 可以在 设置 颜色 中为 W
  • jQuery 圆函数

    如何使用 jQuery 对数字进行四舍五入 如果数字是 3168 我想将其打印为 32 或者 如果数字为 5233 则结果应为 52 我怎样才能做到这一点 我应该使用Math round功能 是的 您应该使用 Math round 除以 1
  • 并发数据结构设计

    我正在尝试提出用于高吞吐量 C 服务器的最佳数据结构 该数据结构将用于存储从几到几百万个对象的任何内容 并且不需要排序 尽管可以非常便宜地提供唯一的排序键 要求是它能够支持高效的插入 最好是 O 1 中等效率的删除和高效的遍历 它不需要支持
  • 如何测试事件是否包含事件处理程序?

    我想测试那个班级A s RegisterEventHandlers 方法将其方法之一注册为EventHandler课堂活动B 我怎样才能做到这一点 我正在使用最小起订量 如果这很重要的话 我认为没有办法从类外部检查事件处理程序委托 如果我错
  • 在文本区域上启用垂直滚动

    我有一个文本区域 我想启用垂直滚动 当我超过文本区域的高度时 它的大小会增加 滚动条不出现 我希望出现一个垂直滚动条 并且用户也无法调整文本区域的大小 我在网上搜索并尝试发布的解决方案 但似乎没有一个有效 Demo http jsfiddl
  • Scala 中使用 TypeTag 和 ClassTag 的多态实例化

    在 Scala 2 9 中 可以将多态实例化实现为 def newInstance T implicit m Manifest T m erasure newInstance asInstanceOf T 但从2 10开始Manifest正
  • 无需硬件支持的虚拟内存

    在读的时候this https stackoverflow com questions 11809162问题及其答案我忍不住想为什么硬件必须支持虚拟内存 例如 我不能仅用软件模拟这种行为 例如 操作系统将所有内存表示为某个表 拦截所有与内存
  • 使用托管服务身份支持代表流程

    在 Azure 和应用服务中运行的应用程序的一个非常常见的流程是代表流程 其中应用程序可以交换传入的访问令牌及其 ClientId ClientSecret 以作为用户访问另一个资源 查看 MSI API 上当前有限的文档 我只看到获取访问
  • Spring MVC 更新后不会显示正确的数据库值

    在我的控制器中 输入一个值MySQL数据库成ModelAndView object 有一个单独的程序可以更新表和MVC应该获取该值 因此没有表单可以更新该表 当 的时候表已更新 当我在浏览器上点击刷新 值不会在页面上更新 控制器 Suppr
  • 如何在 travis 上启动和停止后台任务?

    我需要在 travis 上启动并重新启动自定义 Web 服务器 使用子 shell 在后台启动就可以了 travis yml if TEST ADAPTER HTTP then vendor bin httpd php start fi 为
  • Phoenix框架中如何处理关联和嵌套表单?

    Phoenix框架中如何处理关联和嵌套表单 如何创建具有嵌套属性的表单 在控制器和模型中如何处理它 有一个处理 1 1 情况的简单示例 想象一下我们有一个Car and an Engine模型和显然Car有一个Engine 所以有汽车型号的
  • 简单的随机英语句子生成器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个简单的随机英语句子生成器 我需要用我自己的单词填充它 但它需要能够制作至少遵循英语规则的较长句
  • 警告:“将‘D’的乘法及其转置括起来,以确保结果是埃尔米特式的。”

    正如您在上面的屏幕截图中看到的 我的 Matlab m 文件代码中有以下表达式 K P D D P 其中 P 是一个 nxn 矩阵 D 是一个 nx1 列向量 n 4 如果重要的话 为什么我会收到此警告消息 如果我在那里使用或不使用括号会发
  • SCTP 与多宿主作为 TCP 的直接替代品

    SCTP具有本机多宿主支持 如果我理解正确的话 如果主接口出现故障 它将自动通过辅助 NIC 重新路由您的数据包 我通过编写一个自定义路由守护程序来使用 TCP 复制此功能 以便在我的主 NIC 出现故障时修改路由表 我想尝试使用SCTP反
  • 如何隐藏 toast 消息“您的音频将发送到谷歌以提供语音识别服务。”在安卓中?

    我正在使用谷歌语音识别器在 Android 中集成语音服务 但是当按下麦克风按钮时 会显示这条烦人的 toast 消息 请建议我一种隐藏此 toast 消息的方法 这是我的java代码 public class FormActivity e
  • 如何合并对象数组中的重复项并对特定属性求和? [复制]

    这个问题在这里已经有答案了 我有这个对象数组 var arr name John contributions 2 name Mary contributions 4 name John contributions 1 name Mary c
  • PyQt 中同一模型的不同视图

    我有一个关于 PyQt 中特定模型的多个视图的问题 目前 我有一个 TreeView 设置来显示继承自 StandardItemModel 的模型 模型中存在三种类型的 StandardItem Alpha Beta Gamma 它们在 T
  • 单元测试通过 Django 中模型的正则表达式验证器

    我为 models py 中的一些字段定义了模型以及正则表达式验证器 在tests py中 我编写了测试来验证这些验证器 但它们却通过了 尽管当我尝试通过视图输入错误的值时验证器会发出警报 并且我的 forms py 中没有该表单的任何 干
  • 如何查询iPhone当前的IP地址?

    如何查询iPhone当前的IP地址 如果你想要externalIP地址 用于从本地网络外部连接的IP地址 您需要查询外部网络上的服务器 快速搜索后得到以下结果 http checkip dyndns org http checkip dyn
  • Edmx 需要 Primary_Key 吗?

    在 net 中创建 Edmx 时 在创建数据库的 Edmx 时 仅添加具有主键的表和视图 这是一个问题 这个问题很容易解决 但只需在表或视图中创建列主键 但我不知道为什么有必要 谁能解释一下其背后的原因吗 实体框架需要一个主键来正确地将一条