SQL Server 视图可以有主键和外键吗?

2023-11-25

是否可以在 Microsoft SQL Server Management Studio 中定义数据库视图的主键和外键?如何?

我正在尝试创建一个 ADO.NET 实体数据模型来读取四个我无法修改的旧的、格式不正确的数据库表。我只创建了我需要的数据的视图。

四个视图应映射到具有多对多关系的简单三实体 EDMX。

创建数据模型时出现此错误:

表/视图“...”没有 主键已定义但无效 可以推断出主键。这 表/视图已被排除。使用 您需要审查的实体 您的架构,添加正确的键并 取消注释它。

它正确推断了两个视图的主键。但与另外两个人却未能做到这一点。

我的问题视图之一使用聚合函数:

SELECT MAX(...) ... GROUP BY ...

另一个应该有两个外键的复合主键。


您需要定义您的视图,以便:

  • 包括所有PRIMARY KEY columns
  • 不使用任何JOIN's
  • 不使用任何聚合函数或UNION's

视图中的任何行都应该映射到表中的一行。

我的问题视图之一使用聚合函数

它无法更新。对于只读实体,解决方案来自here:

当无法推断出任何键时,包含相应 EntityType 元素(无 Key 元素)的代码注释将添加到 .edmx 文件的 SSDL 部分。

就您而言,由于您似乎想要一个只读实体,因此您可以:

  1. uncomment the SSDL entity
    • 将一个/某些属性标记为 Nullable="False"
    • 添加适当的关键元素
    • 添加相应的定义查询。

对于第二个问题:

另一个应该有两个外键的复合主键

From 文档:

表示数据库中两个表之间的多对多关系的表在概念模式中可能没有等效实体。当。。。的时候EDM当工具遇到这样的表时,除了作为外键的两个列之外,没有任何列,则映射表在概念模式中表示为多对多关联而不是实体。

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

SQL Server 视图可以有主键和外键吗? 的相关文章

  • 是否有 .NET API 可以返回给定路径的等效扩展路径字符串?

    在 NTFS 中 我可以在路径前加上前缀 字符序列 表示它是超过 260 个字符限制的路径 因此 文件系统将正确解释路径并避免引发PathTooLongException see http msdn microsoft com en us
  • Linq Any 始终返回 true

    我已经使用 Linq to Entities 多年 但这是我第一次遇到这个问题 我有Tips and Items表 每个提示可以有很多项目 我的数据库中只有 3 个项目 编辑项目时 我想确保GivenId对于具有相同提示的项目 字段是唯一的
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • SQL Server 2014执行计划创建需要很长时间(旧版本中很快)

    我在 SQL Server 2014 中遇到一个查询问题 第一次运行该查询时 需要很长时间才能生成执行计划 奇怪的是 它在 SQL Server 的所有早期版本 2012 2008 R2 2008 等 中都运行良好 它似乎与所涉及的表之一上
  • 如何在 Windows 7 - 64 位中安装 IBM db2 ODBC 驱动程序?

    我需要从本地 SQL Server 2008 R2 连接到远程 DB2 我不想使用链接服务器 因此 我正在搜索下载并尝试安装 IBM DB2 驱动程序 因为主机集成服务器附带的用于 DB2 的 Microsoft ODBC 驱动程序非常昂贵
  • 在网络共享或 Intranet 项目上编译网站时请求“System.Web.AspNetHostingPermission”类型的权限失败

    我已经使用 Windows 7 一段时间了 但自从升级以来 我还没有必要使用特定的旧版 Intranet 应用程序 不幸的是 该应用程序被设置为托管在 Intranet 服务器上的 ASP NET 网站项目 当我在 Visual Studi
  • 为什么 localInit Func 在 Parallel.ForEach 中每个线程被调用多次

    我正在编写一些代码来处理大量数据 我认为让 Parallel ForEach 为它创建的每个线程创建一个文件会很有用 这样输出就不需要同步 至少对我而言 它看起来像这样 Parallel ForEach vals new ParallelO
  • .NET 中是否可以抑制第 2 代 GC 收集?

    我的程序分配了大量的实例 这些实例组成了长期存在的 DAWG 在构建此 DAWG 的过程中 有时进度会减慢 100 倍 这与 NET 执行第 2 代 GC 收集完美相关 在此期间 GC 时间百分比 为 99 5 并且 第 2 代总回收量 每
  • SQL Server 中不需要的日期时间舍入

    我遇到了一些看起来很奇怪的事情 SQL Server 似乎正在舍入一些DateTime当我将它们保存到时 值不合适datetime列 我怀疑我错过了一些东西 但我找不到它 我正在使用 NET 4 0 针对 SQL Server 2008 运
  • 如何在 SQL Server 会话中设置自动提交?

    如何在 SQL Server 会话中设置自动提交 您可以通过将implicit transactions设置为OFF来打开自动提交 SET IMPLICIT TRANSACTIONS OFF 当设置为ON时 返回隐式事务模式 在隐式事务模式
  • 如何在 Rails 中对不同用户建模

    Question 我有一个带有内置授权和身份验证逻辑的用户模型 现在我意识到我拥有三种不同类型的用户 我想存储每个人的不同信息 Rails 中处理这个问题的最佳方法是什么 基于当前阅读的想法 我看过 STI 但从我读到的内容来看 它是不合适
  • invalidate方法有什么作用?

    什么是invalidate方法做在winform app Invalidate method附带六超载里面形成control class of System Windows Forms 名称空间 谢谢 Windows 窗体使用 GDI 进行
  • 如何使用 C# 在 .NET 中获取格式化 JSON?

    我正在使用 NET JSON 解析器 并希望序列化我的配置文件 以便它可读 所以而不是 blah v blah2 v2 我想要一些更好的东西 比如 blah v blah2 v2 我的代码是这样的 using System Web Scri
  • 用于存储和检索每个用户敏感数据的.Net 设计模式

    Net 服务器应用程序是否有与存储和检索敏感的每个用户信息 例如第 3 方凭据 相关的参考模式 我的初步设计思路是 生成具有适当强私钥的自签名 X509 证书 导出证书和密钥并将其存储在 USB 密钥中 该 USB 密钥将被锁在宝箱中并由龙
  • 在运行时从调试可视化工具中检测源语言

    我正在写一个Visual Studio 的调试可视化工具 https github com zspitz ExpressionToString visual studio debugger visualizer for expression
  • 使用 Google Calendar API 创建全天活动

    我正在使用 C 和 Google Calendar API 类 CalendarService 和 Event 我想将没有任何日期 全天 的活动上传到 Google 日历 如果我不设置 Event End 属性 则会出现异常 如何将我的活动
  • ADO EF Code First 通用中间类继承映射

    我有以下要求 该要求在 OO 空间中运行良好 但我似乎无法首先使用 ADO EF 代码将其映射回数据库 我有许多产品 每个产品都有不同的方面 属性 但不是代码属性意义上的 例如 戒指将具有矿物类型 金等方面 而钻石将具有净度方面 VVSI1
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St

随机推荐

  • 如何上传JAR到Nexus OSS 3?

    如何通过以下方式执行 jar 的上传curlNexus 3 我尝试使用链接提示但没有成功 这是我的尝试 curl v F r F releases hasPom true and F jar F file v12 1 0 1 pom xml
  • 查找已调用弹出菜单的 JTable 行

    我有一个 JTable 和一个特定于每一行的弹出菜单 我想计算用户右键单击鼠标 Windows L F 以调出弹出菜单的行 我为表创建了一个 MouseListener 因此它可以在单击时获取 MouseEvent 并在正确的位置显示弹出菜
  • 更改主详细信息导航xamarin表单中的汉堡图标

    我正在处理 Xamarin 表单 我需要在成功登录屏幕后显示主详细信息导航 我想更改默认的汉堡包图标 但无法更改它 请参阅下面我正在使用的代码 由于我的应用程序有登录屏幕 因此我不想在登录屏幕上显示任何导航 我只是将主页设置为app xam
  • ASP.NET MVC Controller.OnException 未被调用

    我有一个基本控制器类 我在其中重写 Controller OnException 处理程序方法 以便为将从此类继承的某些类型的控制器 这些是将返回 JSON 结果的 API 控制器 提供通用错误处理 当控制器引发异常时 永远不会调用 OnE
  • SQL - GROUP BY 和 COALESCE 的丑陋组合

    我有一个包含类似于以下数据的表 ID 状态 foo 创建日期 更新日期 我处理这个问题的时间越长 我的 SQL 就越难看 这告诉我我可能做错了什么 我想要的是每个状态的唯一列表 只要 foo 对于该状态始终相同 如果 foo 对于该州的所有
  • Windows Phone 7 (WP7) PhotoChooserTask 与裁剪

    我在许多应用程序中看到过这一点 但在文档或在线示例中找不到任何内容 当您调用 PhotoChooserTask 时 某些应用程序允许您调整大小 裁剪以仅使用该图像的一部分 通过显示白色矩形 我如何使用它并为目标图像设置自己的尺寸 您可以设置
  • 为什么 Collections.sort 使用 Mergesort 而 Arrays.sort 不使用?

    我正在使用 JDK 8 x64 为了Arrays sort 原语 我在Java文档中发现了以下内容 排序算法是双枢轴快速排序作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 For Collections sort 对象 我找
  • 为什么在 Nestjs 中基于构造函数的注入优于基于属性的注入

    The Nestjs 文档描述注入依赖项的两种主要方法 基于构造函数 and 基于财产的注射 它还提到 在可能的情况下 基于构造函数的注入应优先于基于属性的注入 而无需任何说明原因 这有什么具体原因吗 还是只是某种代码风格指南 Someon
  • 如何使用 NSURLConnection 与 SSL 连接以获得不受信任的证书?

    我有以下简单的代码来连接到 SSL 网页 NSMutableURLRequest urlRequest NSMutableURLRequest requestWithURL url NSURLConnection sendSynchrono
  • struts2中使用ajax上传文件

    如何使用ajax在struts 2中上传文件 下载Struts2 jQuery 插件并像平常使用 Struts2 那样进行操作
  • 如何在vs2012中添加对程序集的引用

    我需要有关如何在 C 代码中正确添加程序集的帮助 我启动一个空白项目并尝试运行下面的简单代码 但存在引用错误 我知道默认情况下 system dll 包含在引用文件夹下 那么为什么它仍然抱怨 System Configuration未被引用
  • Android 中的向前或向后兼容性?

    我想知道 Android 是否提供任何类型的兼容性 即向前或向后 这意味着 就像在 Blackberry 中一样 如果使用 JDE 4 2 开发应用程序 那么该应用程序将在任何具有 OS 4 2 或更高版本的手机上运行 这意味着它具有向前兼
  • xslt 有 split() 函数吗?

    如何根据某些分隔符拆分字符串 给定一个字符串Topic1 Topic2 Topic3 我想根据分割字符串 生成 Topic1 Topic2 Topic3 在 XSLT 1 0 中 您必须构建一个递归模板 这个样式表
  • 如何在网站上使用表情符号字体?

    我已经下载了谷歌的 诺托彩色表情符号 字体 但无法使其工作 我对 Noto Sans Regular 等字体没有任何问题 但使用 Noto Color Emoji 字体时 我在 Firefox 在 Windows 10 上 中收到以下错误
  • WPF 窗口设置焦点

    我有一个 WPF 窗口 我只创建一次 然后 Show 和 Hide 多次 现在我正在寻找一种方法来将焦点设置在每个 Show 上的元素上 我可以在哪里以及如何执行此操作 只需对要聚焦的元素调用 Element Focus 即可 如果您的意思
  • 在 Java 中使用另一个类的私有方法

    我有两节课 public class Class1 public class Class2 private void simpleMethod In Class2我有私人方法simpleMethod 我想用它Class1在同一个项目中 我不
  • 在apache服务器上导入Pandas导致超时错误

    我有一个在 Apache 服务器上运行的 Django 项目 我安装了 pandas 并想用它来开始操作数据 然而发生了一些奇怪的事情 每当我使用import pandas在生产环境中 服务器会挂起并 一段时间后 抛出 408 超时错误 我
  • 使用自定义 URL 参数启动 VS2010 silverlight 调试会话

    当我调试 Silverlight 应用程序时 Visual Studio 将仅打开页面 没有额外的 URL 参数 因此 网址将如下所示 http localhost 65351 MyApp 但是 当有人导航到 URL 中带有额外参数的页面时
  • 使用 Room @Transaction 函数时 Android 仪器测试未运行结束

    我正在使用 AS 3 4 1 和运行 Android 9 的模拟器进行测试 当我使用以下测试时 以下测试将无法运行Room Dao Function annotated with Transaction in it class Recurr
  • SQL Server 视图可以有主键和外键吗?

    是否可以在 Microsoft SQL Server Management Studio 中定义数据库视图的主键和外键 如何 我正在尝试创建一个 ADO NET 实体数据模型来读取四个我无法修改的旧的 格式不正确的数据库表 我只创建了我需要