”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在没有物理主键的情况下集成EF 4.0数据模型?

如何在没有物理主键的情况下集成EF 4.0数据模型?

发布于2025-02-06
浏览:500

How Can I Integrate EF 4.0 Data Models Without Physical Primary Keys?

因缺少主键导致 EF 数据模型排除

在将现有数据库集成到 Entity Framework (EF) 4.0 时,某些表缺少主键的情况很常见。在创建新的实体数据模型时,就会出现这个问题,导致错误消息指出缺少主键,并随后将该表排除在外。

通常认为,必须向受影响的表添加物理主键才能解决此问题。但是,有一种变通方法允许您在不修改其架构的情况下使用这些表。

正如 Tillito 所建议的那样,此变通方法涉及在一个新的 SELECT 语句中修改有问题的视图的 SELECT 语句。通过这种方式包装原始 SELECT 语句,您可以使用 ISNULL 函数指定要用作主键的列。相反,可以使用 NULLIF 函数防止将列指定为主键。

示例:

考虑以下示例:

SELECT
  ISNULL(MyPrimaryID,-999) MyPrimaryID,
  NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp

在此示例中,ISNULL 函数强制 EF 将 "MyPrimaryID" 识别为主键,而 NULLIF 函数确保 "AnotherProperty" 不会被视为主键。

通过应用此技术,您可以避免修改数据库架构的需要,并将现有的表无缝集成到您的 EF 数据模型中,从而允许进行数据操作,而无需对物理主键进行修改。

最新教程 更多>
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php 您的目标可能是检索“ varnum”属性值,其中提取数据的传统方法可能会使您感到困惑。 - > attributes()为$ attributeName => $ attributeValue){ echo $ attributeName,'=“',$ at...
    编程 发布于2025-02-06
  • 如何使用变量和窗口功能在MySQL中对客户进行排名?
    如何使用变量和窗口功能在MySQL中对客户进行排名?
    MySQL客户排名方法详解 在处理客户数据时,根据特定条件分配排名是一项常见任务。MySQL 提供了几种方法来实现此目标。 一种方法是使用排名变量,如下面的查询所示: SELECT first_name, age, gender, ...
    编程 发布于2025-02-06
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 问题:考虑以下CSS和HTML: position:fixed; grid-template-columns:40%60%; grid-gap:5px; 背景:#eee; 当位置未固定时,网格将正确显示。但是,当...
    编程 发布于2025-02-06
  • 为什么我会在QT中获得“对BiySocket的VTable的不确定引用”?
    为什么我会在QT中获得“对BiySocket的VTable的不确定引用”?
    遇到qt中的“ undefined to vtable” errive qt indif对于类“ BielySocket”中的虚拟方法。但是,提供的代码声称没有虚拟方法。原因和解决: 错误消息表明,虚拟方法在没有相应的定义中被调用班级。但是,根据给定的标头文件,没有声明虚拟方法。解决方案: 在q...
    编程 发布于2025-02-06
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在java中的多个返回类型:一个误解介绍,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但是,情况确实如此吗?通用方法:拆开神秘 [方法仅具有单一的返回类型。相反,它采用机制,如钻石符号“ ”。分解方法签名: :本节定义了一个通用类型参数,E。它表示该方法接受了扩展foo类的任...
    编程 发布于2025-02-06
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    [2明确担心Microsoft Visual C(MSVC)在正确实现两相模板实例化方面努力努力。该机制的哪些具体方面无法按预期运行?背景:说明:的初始Syntax检查在范围中受到限制。它未能检查是否存在声明名称的存在,导致名称缺乏正确的声明时会导致编译问题。为了说明这一点,请考虑以下示例:一个符合...
    编程 发布于2025-02-06
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-02-06
  • 如何将自己的字体带到我的网站?
    如何将自己的字体带到我的网站?
    在Web 上扩展字体选项,而Web开发的字体选择传统上是有限的,最近的进步引入了创新的解决方案,以增强网站的视觉吸引力。 @font-face在CSS中: http://www.csss.3.info/preview/web-fonts-withs-with-font-font-face/ h...
    编程 发布于2025-02-06
  • 为什么我的Discord.py.py 2.0 bot命令尽管没有错误?
    为什么我的Discord.py.py 2.0 bot命令尽管没有错误?
    命令不在discord.py.py 2.0中运行:没有错误,而是在1.7.3 意图:缺失的链接解决方案:启用消息内容意图访问Discord Developer Portal并选择您的应用程序。 导航到“ bot”部分。在“权限”选项卡下,找到“消息内容意图”部分,然后选中框以启用它。使用这些更改,...
    编程 发布于2025-02-06
  • JQuery.click()与OnClick:您应该选择哪个点击事件处理程序?
    JQuery.click()与OnClick:您应该选择哪个点击事件处理程序?
    jquery.click()它遵循使用AddeventListener或attachEvent的W3C DOM事件注册模型,可确保与其他库更好地互操作性。 多个事件侦听器:允许为同一目标注册多个事件处理程序。在任何DOM元素上都可以使用:可以在任何DOM元素上使用,包括非HTML元素。 覆盖:...
    编程 发布于2025-02-06
  • 抽象类可以有构造函数吗?
    抽象类可以有构造函数吗?
    抽象构造函数通过确保子类遵守某些规则或提供对象初始化所需的最小字段来强制约束。 indialition firtiation of Fields:允许抽象类来初始化共享字段,这些字段是初始化的共享字段,这些字段是初始化的共享字段,这些字段是子类继承和利用。 Overloading:抽象构造函数促进...
    编程 发布于2025-02-06
  • 如何从C#中的非UI线程安全地更新UI元素?
    如何从C#中的非UI线程安全地更新UI元素?
    避免跨线程错误:安全地从非 UI 线程更新 UI 元素 在从非 UI 线程(例如串口数据接收事件生成的线程)与 UI 元素交互时,必须处理线程安全问题以避免跨线程错误。 在 C# 代码中,错误“跨线程操作无效:从创建控件 'textBox1' 的线程以外的线程访问控件 't...
    编程 发布于2025-02-06
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式界面中实现垂直滚动元素的CSS高度限制 考虑一个布局,其中我们具有与可滚动的映射div一起移动的subollable map div用户的垂直滚动,同时保持其与固定侧边栏的对齐方式。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。 可以限制地图的滚动,我们可以利用CSS...
    编程 发布于2025-02-06
  • 'exec()
    'exec()
    Exec对本地变量的影响: exec function,python staple,用于动态代码执行的python staple,提出一个有趣的Query:它可以在函数中更新局部变量吗? python 3 Dialemma 在Python 3中,以下代码shippet无法更新本地变量,因为人们...
    编程 发布于2025-02-06
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    如何为JavaScript对象变量创建动态键,尝试为JavaScript对象创建动态键,使用此Syntax jsObj['key' i] = 'example' 1;将不起作用。正确的方法采用方括号:他们维持一个长度属性,该属性反映了数字属性(索引)和一个数字属性的数量。标准对象没有模仿这...
    编程 发布于2025-02-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3