同一个表的多个外键

2024-05-25

我有一个参考表,其中包含性别、地址类型、联系人类型等各种受控值查找数据。许多表都有指向该参考表的多个外键

我还有多对多关联表,其中同一个表有两个外键。不幸的是,当这些表被拉入 Linq 模型并生成 DBML 时,SQLMetal 不会查看外键列的名称或约束的名称,而只会查看目标表。所以我最终得到了名为 Reference1、Reference2 的成员,...不太便于维护。例子:

  <Association Name="tb_reference_tb_account" Member="tb_reference" <======
  ThisKey="shipping_preference_type_id" OtherKey="id" Type="tb_reference"
  IsForeignKey="true" />
  <Association Name="tb_reference_tb_account1" Member="tb_reference1" <======
  ThisKey="status_type_id" OtherKey="id" Type="tb_reference" 
  IsForeignKey="true" />

当然,我可以进入 DBML 并手动更改成员名称,但这意味着我无法再往返我的数据库模式。在该模型的现阶段,这不是一个选项,该模型仍在不断发展。 将参考表拆分为 n 个单独的表也是不可取的。

我可能可以编写一个脚本,在每次生成后针对 XML 运行,并将成员名称替换为从 ThisKey 派生的名称(因为我遵守这些类型的键的命名约定)。 有没有人找到更好的解决方案来解决这个问题?


所以我走上了部分课程的路线。例如,我添加了以下成员来解决原始示例中的第一个引用成员:

public partial class tb_account
{
    public tb_reference shipping_preference_reference
    {
        get
        {
            return this._tb_reference.Entity;
        }
        set
        {
            this.tb_reference = value;
        }
    }

这远非完美。在大型模型中它需要大量的额外代码,并且依赖于属性的顺序不改变(如果引用表的另一个外键被添加到帐户表中,则该成员实际上可能指向除运输偏好)。 这也有一个好处。由于我已经为其他目的编写了部分类,因此添加这些成员不需要我重新构建应用程序。

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

同一个表的多个外键 的相关文章

  • XML 到 IEnumerable

    有没有办法获取给定的 XML 文件并将其转换 最好使用 C 泛型 为 T 的具体可枚举列表 其中 T 是我的具体类 例如 我可能有一个 XML 文件 例如
  • LINQ:确定两个序列是否包含完全相同的元素

    我需要确定两个集合是否包含完全相同的元素 顺序并不重要 例如 这两个数组应被视为相等 IEnumerable
  • LINQ 按降序排序,底部为空值 [重复]

    这个问题在这里已经有答案了 我有这样的表达 troubletickets db ServiceTickets Include t gt t Company Include t gt t UserProfile troubletickets
  • 如何在 F# 中使用 LINQ 更新数据库中的表?

    我看过很多有关如何查询数据库的示例 但没有看到有关如何更新记录的示例 下面是我编写的用于检索表的简单代码 但有人可以解释一下如何修改字段 例如lastActiveDate 并更新数据库上的表 谢谢你 周日 open System open
  • 实体框架在不同的工作站上生成不同的查询

    我们在单个开发人员机器和一些客户端上遇到问题 单个 Linq 查询 生成两个不同的 SQL 查询 问题实际上是第二个查询有 firebird 不支持的 OUTER APPLY 语句 我们认为这不是代码问题 而是环境问题 但我会粘贴代码 li
  • LINQ2SQL:如何实现通用最大字符串长度验证?

    LINQ2SQL 中的一个常见问题是 虽然 NET 字符串允许为其变量分配任意长度 但您的数据库可能具有特定的最大长度约束 如 VARCHAR 5 这将导致 SQL 错误消息 字符串或二进制数据将被截断 这是非常没有帮助的 因为它不会告诉您
  • 如何使用 C# 读取包含数组的 json 文件并对其执行 LINQ 查询? [复制]

    这个问题在这里已经有答案了 我是 C 中 json 的新手 我使用 newtonsoft json 我有一个包含数据 数组 的 json 文件 firstName Joyce lastName Huff isActive true age
  • .net MVC、SelectList 和 LINQ

    我刚开始在 MVC 框架中使用 Html DropDownList 并且很难理解如何从数据库中选择数据以绑定到 DropDownList 有没有一种简单的方法可以从标准 LINQ 查询返回可绑定列表 例如 SelectList Select
  • 无效操作。连接已关闭。 ASP.NET MVC

    这种情况并不经常发生 但有时我会收到一封通过电子邮件发送给我的异常报告 指出这段代码 我想知道您是否发现以下代码有任何问题 我无法让它在本地失败 并且使用断点跟踪数据总是会一步步给出正确的结果 namespace DomainModel C
  • 使用 LINQ 获取下一个可用整数

    假设我有一个整数列表 List
  • ASP MVC:何时调用 IController Dispose()?

    我正在对我的一个较大的 MVC 应用程序进行大规模重构 速度调整 它已经部署到生产环境几个月了 我开始在连接池中等待连接超时 我已将问题追溯到连接未正确处理的情况 鉴于此 我对我的基本控制器进行了以下更改 public class MyBa
  • LINQ 的 Expression.Quote 方法的用途是什么?

    MSDN 文档指出 表达 引用 方法创建一个 代表一个的 UnaryExpression 具有常量值的表达式 类型为表达式 我已经能够通过使用 Expression 类手动构建谓词表达式来构建用于 LINQ 查询的谓词表达式 但从未遇到过需
  • C#:按枚举值排序/排序

    我有一个从 Linq2Sql 实现的 IEnumerable 我已经过滤掉了我想要的记录 现在我想根据选定的枚举对它们进行排序 public enum Sort Time Name Value public class LinqClass
  • 在List中找到对应的项目

    为了清楚地显示 我有以下列表项 我可以想象下面的小列表 可能有数百行 CourseId ClassName StartDate 12321 Math 08 25 2017 32342 Physics 08 25 2017 34345 Che
  • 使用Table Per Subclass时如何确保数据完整性?

    我正在使用每个子类的表Grails 中的策略通过设置tablePerHierarchy静态的性质mapping我的超类中的字段为 false 这样 Grails 会为我的超类创建一张表 并为我的每个子类创建一张附加表 然而 虽然超类和子类记
  • 如何在列上创建外键,该列的每条记录都可能引用多个表之一中的列?

    我正在创建一个社交网络 它有新闻 照片等多个实体 可以有评论 由于所有评论都具有相同的列并且行为方式相同 唯一的区别是它们的类型 新闻 照片或将来添加的其他内容 我决定为所有评论创建一个表 其中的列名为type 它工作得很好 直到我决定将外
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • 使用 LINQ 获取二维数组的最大列数

    无论如何 有没有使用 LINQ 来获取二维数组每列的最大值 假设我有以下内容 var arrays new double 5 100 我想获得最大的arrays 0 arrays 1 arrays 4 如何使用LINQ来做呢 我可以使用这样
  • 如何使用 LINQ 获取 Count() 的 Max()

    我是 LINQ 新手 我遇到了这种情况 我有这张表 ID Date Range 1 10 10 10 9 10 2 10 10 10 9 10 3 10 10 10 9 10 4 10 10 10 8 9 5 10 11 10 1 2 6
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new

随机推荐

  • Perl `join` 生成多行字符串

    我有这个程序来对两个数组进行排序 usr bin perl w movies movies txt open FHD movies die could not open movies n movies
  • 如何将 Facebook LoginButton 集成到 PreferenceScreen 中

    我想让我的用户能够通过 设置 屏幕连接 断开与 Facebook 的连接 该屏幕使用简单的PreferenceScreen 如何将这个自定义 Button 类集成到PreferenceScreen https developers face
  • jQuery Mobile - pageinit 和 pagecreate 仅触发一次

    我正在开发我的第一个 jQuery Mobile 项目 但遇到了障碍 我使用的是 1 0 版本 到目前为止 该项目非常简单 三页 仅在索引上包含脚本 我错误地使用了 document ready function 首先 然后阅读文档 正确的
  • Spring Boot - 环境 @Autowired 抛出 NullPointerException

    我有一个项目设置使用春季启动0 5 0 M5 在我试图的配置文件之一中 Autowire Environment但这失败了NullPointerException 这是我到目前为止所拥有的 应用程序 java EnableAutoConfi
  • 谷歌地图不显示 Android

    我想在我的应用程序中实现谷歌地图 我添加了谷歌地图活动并创建了一个密钥 我没有更改其他地方的代码中的任何内容 我应该工作 但没有 地图活动 public class MapsActivity extends FragmentActivity
  • 使用 Swift 和 Kotlin 重新创建 Flutter 的 ios 和 android 文件夹

    您好 我刚刚发现可以使用 Swift 和 Kotlin 创建 Flutter 项目 但是 我已经投资了当前的项目 并希望重新创建ios and android如 Swift 和 Kotlin 目前默认为 Java 和 ObjC Thanks
  • jQuery - 将 href="" 的内容替换为 '#'

    我需要一种替换其中包含的文本的方法 a href a
  • 使用 WriteConsoleOutput 用 c# 编写 Unicode

    我正在尝试使用WriteConsoleOutput来自 kernel32 dll 的函数 但是我无法正确显示 unicode 字符 它们总是显示为错误的字符 我尝试过使用 Console OutputEncoding System Text
  • Siri 意图捐赠快捷方式最终出现错误

    我为 Siri 快捷方式创建了一个简单的意图 每当我尝试捐赠该意图时 都会出现以下错误 互动捐赠失败 Error Domain IntentsErrorDomain Code 1901 无法捐赠互动 意图 用户 标识符 06DE1A38 6
  • 删除 SQL 中重复的字段条目

    无论如何 我可以删除某个表中的所有重复条目 users 这是我拥有的条目类型的示例 我必须说一下桌子users由3个字段组成 ID user and pass mysql query DELETE FROM users WHERE or d
  • 如何从被调用函数更改调用函数中的变量? [复制]

    这个问题在这里已经有答案了 应该如何try 修改函数 及其调用 以从下面的程序中获取输出 11 include
  • 使用 Rails 应用程序推送到 Heroku 时如何忽略文件夹和文件?

    我有一个Rails 3 2 8应用程序 我不想推送我的spec文件夹和test登录 Heroku 我该怎么做 如果有一个staging偏僻的 Thanks 你可以把它们放进去 gitignore 但这会将它们从您的整个存储库中排除 更好的解
  • 共享相同超类实例的类

    我有一个非常简单的问题 2 个类可以共享同一个 Super 类实例吗 我知道答案是否定的 因为 super 是实例本身 但我确实有一些解决方法 public class Parent private final int parentId p
  • Google App Engine CORS“解析 ./app.yaml 时出错:未知的 url 处理程序类型”

    我正在尝试将 CORS 应用到我的一个应用程序引擎 但遇到错误 我尝试查看其他答案 间距 的建议 但仍然错误 app yaml runtime nodejs10 env variables NODE ENV production CLOUD
  • LWJGL3:重载的 glBufferData 方法

    我正在使用 LWJGL 调用 OpenGL 函数 方法org lwjgl opengl GL15 glBufferData http javadoc lwjgl org org lwjgl opengl GL15 html glBuffer
  • 什么是 DOM 级别?

    我听说过 DOM level 2 和 DOM level 3以前的帖子 https stackoverflow com questions 6617030 where is a node defined 这些抽象结构是否类似于具有 1 7
  • PHP 日期时间 当前时间 添加分钟

    简单的问题 但这正在消磨我的时间 有什么简单的解决方案可以用 GMT 8 在 php 中向当前时间添加 30 分钟吗 我认为最好也是最简单的解决方案之一是 date Y m d strtotime 30 minutes 也许它不是最有效的
  • 如何使用 vim 作为寻呼机设置彩色 git diff

    我无法配置 git 来遵循我的请求 使用 vim 作为差异分页器 在交互模式下添加文件时保留差异颜色 My gitconfig setup color ui auto diff false pager diff vim 通过此配置 交互模式
  • 无法在 Windows 10 上安装 Postgresql

    我第一次尝试在我的 Windows 10 计算机上安装 postgreSQL 安装结束时出现两个错误 1 集群初始化期间发生非致命错误 请检查 C users abc AppData Local Temp 中的安装日志了解详细信息 2 运行
  • 同一个表的多个外键

    我有一个参考表 其中包含性别 地址类型 联系人类型等各种受控值查找数据 许多表都有指向该参考表的多个外键 我还有多对多关联表 其中同一个表有两个外键 不幸的是 当这些表被拉入 Linq 模型并生成 DBML 时 SQLMetal 不会查看外