nHibernate为Id生成Guid,但属性为字符串
本文关键字:属性 字符串 Guid Id 生成 nHibernate | 更新日期: 2023-09-27 17:51:10
我试图使一个实现Microsoft.AspNet.Identity.IUser
的nHibernate实体,但我想使用Id
键属性的Guids。我正在城堡ActiveRecord环境中构建此。
我在我的User
类每个接口写一个属性,像这样:
public class User : IUser
{
public virtual string Id { get; set; }
public virtual string UserName { get; set; }
}
我想能够做的是在数据库中使用生成的Guid填充Id
列,但在实体中使用Guid字符串填充Id
属性。
我想我会很好重写NHibernate.Id.TableGenerator
,像这样:
public class GuidStringGenerator : TableGenerator
{
public override object Generate(ISessionImplementor session, object obj)
{
return Guid.NewGuid().ToString();
}
}
…但现在我觉得不会实现我想要的;这似乎会在数据库中创建一个字符串值,而不是Guid。
关于如何做到这一点有什么建议吗?
Jeremy Holovacs你好
你可以显式地实现IUser的Id-Property。
public class User : IUser
{
public virtual Guid Id { get; set; }
string IUser.Id{get{return this.Id.ToString();}}
public virtual string UserName { get; set; }
}
问候Juy Juka