linq – 同一个表的多个外键
发布时间:2020-12-12 08:57:19 所属栏目:MsSql教程 来源:网络整理
导读:我有一个参考表,其中包含性别,地址类型,联系人类型等各种受控值查找数据.许多表具有此参考表的多个外键 我还有多对多关联表,它有两个外键到同一个表.不幸的是,当这些表被拉入Linq模型并生成DBML时,SQLMetal不会查看外键列的名称或约束的名称,而只会查看目标表
我有一个参考表,其中包含性别,地址类型,联系人类型等各种受控值查找数据.许多表具有此参考表的多个外键
我还有多对多关联表,它有两个外键到同一个表.不幸的是,当这些表被拉入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并手动更改成员名称,但这意味着我不能再遍历我的数据库模式.在模型的当前阶段,这不是一个选项,它仍在不断发展. 我可能会编写一个在每次生成后针对XML运行的脚本,并用从ThisKey派生的内容替换成员名称(因为我遵守这些类型的键的命名约定). 解决方法所以我走了部分班路线.例如,我添加了以下成员来解决原始示例中的第一个引用成员:public partial class tb_account { public tb_reference shipping_preference_reference { get { return this._tb_reference.Entity; } set { this.tb_reference = value; } } 这远非完美.它需要大型模型中的大量额外代码,并且取决于属性的顺序不变(如果将参考表的另一个外键添加到帐户表中,该成员实际上可能指向除了运输偏好).也有好处.由于我已经为其他目的编写了部分类,因此添加这些成员并不需要我重新构建应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |