我正在尝试创建一个实现Microsoft.AspNet.Identity.IUser
的nHibernate实体,但我想将Guids用于Id
键属性。我正在Castle ActiveRecord环境中构建它。
我按照这样的界面在我的User
课程中写了一个属性:
public class User : IUser
{
public virtual string Id { get; set; }
public virtual string UserName { get; set; }
}
我希望能够做的是在数据库中使用生成的Guid填充Id
列,但使用Guid字符串填充实体中的Id
属性。< / p>
我认为我可以像这样覆盖NHibernate.Id.TableGenerator
:
public class GuidStringGenerator : TableGenerator
{
public override object Generate(ISessionImplementor session, object obj)
{
return Guid.NewGuid().ToString();
}
}
......但现在我觉得实际上并没有实现我的目标;看来这会在数据库中创建一个字符串值,而不是Guid。
有关如何实现这一目标的任何智慧?
答案 0 :(得分:1)
Hello 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