Oce*_*t20 7 sqlmetal .net-4.0 linq-to-sql
Edit - Cleaning up question to better reflect the actual issue:
我正在使用SQLMetal从我们的SQL Server数据库生成数据库类.最近,我需要添加一个表,其中有多个外键指向同一个表.使用LINQPad来使用新表,我能够访问两个外键的属性,如下所示:
......这就是我期待它的方式.问题是,SQLMetal生成的类产生以下属性:
现在我可以只生成生成的类,因此FKBTableNameGoesHere将是FK_B,但生成的文件经常被不同的团队成员更改,因此这将是一个巨大的痛苦.这有一个简单的解决方案吗?
提前致谢.
编辑2 所以,我认为解决方案是创建一个具有名为我想要的属性的部分类,并让getter/setter指向命名不佳的属性.这有助于选择,但不能在where子句中使用它.任何人都有解决方案?
因此,我的解决方案是添加另一个分部类并添加一个属性,其中 get/set 指向奇怪命名的 FKBTableNameGoesHere 属性。这样我们就不必不断修改生成的类。不完全解决问题,但应该让开发商更清楚该房产的含义。有人看到该解决方案有任何潜在问题吗?
编辑- 所以,显然这仅适用于选择数据而不是基于它的过滤。修复并不像我希望的那么容易。有人还有其他建议吗?
编辑 2 - Jeeze,我认为这可能是一个常见问题,但我想不是。不管怎样,事实证明我的做法是正确的。我找到了这个帖子:
这让我想到我不能直接链接到另一个属性的 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们将为任何仍能提出更清洁解决方案的人提供悬赏。
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |