【问题标题】:Defining Property Names in multiple LinQ-Connections在多个 LinQ 连接中定义属性名称
【发布时间】:2015-06-24 09:14:35
【问题描述】:

我必须关注“地址” - 包含这些字段的表格:

[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

拥有“Address1”和“Address2”不仅丑陋,还发生在对数据结构进行更改并重新创建设计器文件之后,他们交换了内容(Address3 突然包含 shippingAddress 和包含 Billingaddress 的 Address2 等等)

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

【问题讨论】:

    标签: c# linq


    【解决方案1】:

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

    但是,您无法解释 DBML 生成中发生的一些事故,尤其是事情变得越复杂 - 所以准备“第一次做对”并做笔记以防万一必须全选 -> 删除 -> 重新创建。

    只要您的关系都被正确命名,使用提到的相同视图来跟踪编辑它们绑定的字段就很容易。

    【讨论】:

    • 看起来这是我能得到的最佳解决方案。至少当我在数据库更改后忘记正确命名时,后端会抛出错误,因为找不到属性。总比没有好。
    • 使用 VS DBML 设计器可以提高生产力,但也可以令人愤怒;我会指定并让您的结构正确,使用数据库引擎管理器/前端/脚本对其进行设计;只有在 VS 设计器中拖放。这就是记录对“友好名称”的更改派上用场的地方:更改后(如果需要的话)通常可以更容易地清除 DBML 并将该地段拖回原处,重命名已记录的更改。似乎冗长,但效率低得多。
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多