linq-to-sql – 指向一个表问题的SQLMetal多个外键
编辑 – 清理问题以更好地反映实际问题:
我正在使用SQLMetal从我们的SQL Server数据库生成数据库类.最近,我需要添加一个表,其中有多个外键指向同一个表.使用LINQPad来使用新表,我能够访问两个外键的属性,如下所示: > record.FK_AId ……这就是我期待它的方式.问题是,SQLMetal生成的类产生以下属性: > record.FK_AId 现在我可以只生成生成的类,因此FKBTableNameGoesHere将是FK_B,但生成的文件经常被不同的团队成员更改,因此这将是一个巨大的痛苦.有一个简单的解决方案吗? 提前致谢. 编辑2 解决方法所以,我的解决方案是添加另一个部分类并添加一个属性,其中get / set指向奇怪命名的FKBTableNameGoesHere属性.这样我们就不必继续修改生成的类了.不完全解决问题,但应该让开发人员更清楚属性意味着什么.有人看到该解决方案的任何潜在问题吗?编辑 – 所以,显然这仅适用于选择数据而不是基于它的过滤.不像我希望的那样容易修复.有没有其他建议? 编辑2 – Jeeze,认为这将是一个常见的问题,但我想不是.无论如何,事实证明我是在正确的轨道上.我发现这篇文章: Multiple foreign keys to the same table 这给了我一个想法,我不能直接链接到另一个属性的getter / setter,因为它可能比幕后更多.这个家伙的解决方案并不完全是答案,但它让我处于严谨的方向.添加关联属性是最终做到的: public partial class ProblemClass { [Association(Name = "FK__SomeLinkHere",Storage = "_OriginalPoorlyNamedStorageVariable",ThisKey = "FK_1_Id",OtherKey = "Id",IsForeignKey = true)] public FKType MyNewBetterName { get { return this._OriginalPoorlyNamedStorageVariable.Entity; } set { this.OriginalPoorlyNamedStorageVariable = value; } } } 为那些仍然可以提出更清洁解决方案的人打开奖金. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |