假設我有一個Person表看起來像這樣,在fk_FriendID有關pk_PersonID:當表與自己有關係時,你如何重命名LINQ的名字?
LINQ2SQL會自動映射此爲:
Person bert = new Person();
Person ernie = new Person();
bert.Person1 = ernie;
如何覆蓋此功能,所以我可以參考它bert.Friend = ernie?
假設我有一個Person表看起來像這樣,在fk_FriendID有關pk_PersonID:當表與自己有關係時,你如何重命名LINQ的名字?
LINQ2SQL會自動映射此爲:
Person bert = new Person();
Person ernie = new Person();
bert.Person1 = ernie;
如何覆蓋此功能,所以我可以參考它bert.Friend = ernie?
不是乾淨的解決方案,但你可以通過部分類添加一個附加屬性:
partial class Person
{
public Person Friend
{
get { return this.Person1; }
set { this.Person1 = value; }
}
}
這也是我對把嚴格類型枚舉性能在數字領域的標準程序。
任何其他解決方案(如使用自動生成的代碼)通常都會開始崩潰,因爲每次進行模式更改時都會不斷重新生成代碼。
該選項是開始使用EF(我認爲他們有這個解決方案),但這就像試圖通過用霰彈槍吹噓你的手臂癢。
從例如在http://msdn.microsoft.com/en-us/library/bb386950.aspx它看起來像你想這樣做:
private EntitySet<Person> _Friends;
[Association(Storage = "_Friends", OtherKey = "PersonID")]
public EntitySet<Person> Friends
{
get { return this._Friends; }
set { this._Friends.Assign(value); }
}
編輯:
要通過.dbml文件到這一點,在http://msdn.microsoft.com/en-us/library/bb546179.aspx
使用說明您可能會猜到,您需要進行的修改是搜索「Person1」,並根據需要將其替換爲「朋友」或「朋友」。
儘管phoog的答案在技術上更加正確(用於處理集合,比如bert.Friends),但這解決了我簡單的語法問題。這不是它的問題,但我喜歡寫易於閱讀的自我記錄代碼。出於這個原因,這種更簡單的方法更適合。謝謝! – James