1
我的加入(遺留,不能改變)架構中有用戶和UserAddress之間的一對一的關係,具有複合鍵:nHib 3.2映射由碼對複合鍵
Users:
- username (PK)
- email (PK)
- firsname
- lastname
UsersAddresses:
- username (PK, FK)
- email (PK, FK)
- city
- street
我的原想法是使用一個<join
,使他們都到同一個類:
public class UserDTO
{
public string Username { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string City { get; set; }
//etc...
}
,但我不知道的映射:
Join("UsersAddresses", j=>
{
j.Table("UsersAddresses");
j.Fetch(FetchKind.Join);
j.Optional(false);
j.Key(k=>
{
//What here???
k.Column(c=>
{
c.Name("");
c.Name("");
});
k.ForeignKey("");
k.ForeignKey("");
});
});
有沒有辦法做到這一點?或者,也許我應該選擇一個組件或一對一的映射...
'c'是IColumnMapper類型,它沒有定義'ForeignKey'函數。任何其他想法? – 2012-04-01 08:19:56
嗯,你是對的。所以看起來沒有辦法爲組合鍵定義外鍵名稱。但是,爲什麼你在意,你說過你的數據庫是遺留的,不能改變,只有在模式導出的情況下才需要設置外鍵名,ForeignKey纔是你需要的。 – NOtherDev 2012-04-01 08:53:34
哦,所以在我對代碼映射的理解中存在一些根本性的缺失:我如何告訴NHib'UsersAddresses'中的哪一列引用'Users'中的哪一列? (即'username - > username_fk'等) – 2012-04-01 09:33:48