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