2015-06-24 25 views
1

我有下面的“地址” - 表与这些领域:定义属性名在多个LINQ的连接

[Id] int 
[FirstName] nvarchar 
[LastName] nvarchar 
[Street] nvarchar 

现在我有以下的“用户” - 表具有多个外键地址 - 表

[ShippingAddressId] ->Address 
[BillingAddressId] ->Address 
[PrivateAddressId] ->Address 
[Username] nvarchar 

当我使用LINQ和包括表,设计师创建以下属性:

int ShippingAddressId 
int BillingAddressId 
int PrivateAddressId 

Address Address, // for ShippingAddress 
Address Address1 // for BillingAddress 
Address Address2 // for PrivateAddress 

“地址1”和“地址2”不仅仅是丑陋的,它也发生了,在数据结构发生变化并重新创建设计器文件后,它们交换了内容(地址3突然包含shippingAddress和包含Billing地址的Address2等)

那么有没有一种干净的方式来提示设计师使用更好的属性名称? 如果不是:您的建议是什么?从设计师课程派生并实现我自己的属性?我如何确保它使用“正确”属性?

回答

1

是的,在所选关系/连接的属性视图中(在Visual Studio中),可以展开父项和子项来编辑参照名称。

但是,不能解释DBML生成中发生的一些不幸事件,尤其是更复杂的事情 - 所以要准备好“第一次就做好”,并做好笔记,以防万一结束不得不选择全部 - >删除 - >重新创建。

只要您的关系各有一个好名称,跟踪编辑他们绑定的字段很容易使用上述相同的视图。

+0

看起来这是我可以得到的最佳解决方案。至少后端会在数据库更改后忘记正确的命名时抛出错误,因为无法找到属性。有总比没有好。 –

+1

它可以是生产性的,但也可以使用VS DBML设计器生气;我会指出并确保你的结构正确,使用数据库引擎管理器/前端/脚本来设计它;只需拖放VS设计器即可。这就是为什么变更“友好名称”的注意事项派上用场的原因:在变更后(如果需要的话),清理DBML并重新启动批处理,重命名指定的更改通常会更容易。似乎很啰嗦,但生产方式却少得多。 –