C# nHibernate为Id生成Guid,但属性为字符串
我正在尝试创建一个实现C# nHibernate为Id生成Guid,但属性为字符串,c#,nhibernate,activerecord,asp.net-identity,castle-activerecord,C#,Nhibernate,Activerecord,Asp.net Identity,Castle Activerecord,我正在尝试创建一个实现Microsoft.AspNet.Identity.IUser的nHibernate实体,但我想为Id键属性使用GUID。我是在Castle ActiveRecord环境中构建的 我正在我的User类中为每个界面编写一个属性,如下所示: public class User : IUser { public virtual string Id { get; set; } public virtual string UserName { get; set; }
Microsoft.AspNet.Identity.IUser
的nHibernate实体,但我想为Id
键属性使用GUID。我是在Castle 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
关于如何实现这一点有什么建议吗?你好,杰里米·霍洛瓦茨
您可以实现IUser explicit的Id属性
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嗯,我以前从来没有这样做过。我会试试看。