重命名强类型数据集中的外部行

时间:2011-05-16 13:58:00

标签: c# datatable dataset foreign-keys foreign-key-relationship

假设我有以下DataBase / DataSet Schema结构:

表员工

  • EmployeeID PK
  • 名称

表台

  • DeskID PK
  • NumberOfLamps
  • OwnerEmployeeID FK到EmployeeID

当然,我可以访问Employee名称:

string employeeName = desk.EmployeeRow.Name;

我希望以此方式访问他的名字:

string employeeName = desk.OwnerEmployee.Name;

在这个例子中,它基本上没有意义,我知道,但是假设你有另一个表代表Boss / Employee的n-to-n映射:

表WhosTheBoss

  • WhosTheBossID PK
  • BossEmployeeID FK
  • SlaveEmployeeID FK

访问他们的名字并不好玩,imho:

string notCool = string.Format(
    "{0} is a slave to {1}.",
    whosTheBoss.EmployeeRow1.Name,
    whosTheBoss.EmployeeRow.Name);



编辑:我正在检查设计器生成的代码,这是我目前拥有的:

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public EmployeeRow EmployeeRow {
    get {
        return ((EmployeeRow)(this.GetParentRow(this.Table.ParentRelations["FK_Desk_Employee"])));
    }
    set {
        this.SetParentRow(value, this.Table.ParentRelations["FK_Desk_Employee"]);
    }
}

我想拥有的将是:

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public EmployeeRow OwnerEmployeeRow {
    // ...
}

但我无法改变,或者设计师可能会邮寄给我......

2 个答案:

答案 0 :(得分:1)

我能够使用自动生成的.xsd文件上的XML架构编辑器重命名为数据集数据表生成的类名。

也许在这个文件中搜索 EmployeeRow 并更改它 - 然后重建对你有帮助吗?

答案 1 :(得分:0)

首先,我喜欢你的使用或“notCool”和奴隶制。

您没有提到您正在使用的对象关系映射器,但大多数都允许您更改具有外键的对象的名称。例如,在Entity Framework中,您可以编辑实体数据模型上的属性以提供更友好的名称。