public class User{ public GuID UserID { get; set; } public string Username { get; set; } ...}
这是在nhibernate中流畅映射的:
public class UserMap : ClassMap<User>{ public UserMap() { ID(x => x.UserID).Column("UserID"); Map(x => x.Username).Not.Nullable(); ... }}
我正在尝试构建一个与用户对象分开的凭据块,因此密码和salt不会在用户类中携带,如下所示:
public class UserCredential{ public User User { get; set; } public byte[] Password { get; set; } public string Salt { get; set; }}
…但我无法弄清楚如何正确映射这个.最终,在数据库中,我希望在UserCredentials表中看到UserID列,它既是Users表的主键,也是Users表的外键. Users表应该没有对UserCredentials表的引用.我该怎么写那个ClassMap< UserCredential>类?
解决方法@H_403_30@ 这似乎是一对一的关系,因此将使用FNH中的HasOne进行映射.例
public UserCredentialMap() { ID(x => x.ID) .Column("UserID") .GeneratedBy.Foreign("User"); HasOne(x => x.User).Constrained(); }
您也可以像这样映射它:
public UserCredentialMap(){ ID(x => x.ID,"UserID"); References(x => x.User,"UserID") .Not.Update() .Not.Insert();}总结
以上是内存溢出为你收集整理的c# – 映射Fluent NHibernate,其中主键也应该是外键全部内容,希望文章能够帮你解决c# – 映射Fluent NHibernate,其中主键也应该是外键所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)