当我尝试在数据库中保存新用户时,我遇到了问题。我的代码:
if (!user.ValidateUser(username, password))
{
using (var session = NHibernateHelper.OpenSession())
{
User u = new User();
u.Name = username;
u.Email = string.Empty;
u.Password = "123456";
using (var transact = session.Transaction)
{
session.SaveOrUpdate(u); // I have an exception in this line
transact.Commit();
}
}
}
错误:
收藏不能为空。参数名称:c
如何在数据库中保存新用户?
P.S。 session.Save(user1);
也让我有这个例外。
更新:用户类
public partial class User
{
public User()
{
this.CurrentTestings = new HashSet<CurrentTesting>();
this.ResultsSet = new HashSet<ResultTesting>();
}
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Password { get; set; }
public virtual string Email { get; set; }
public virtual ICollection<CurrentTesting> CurrentTestings { get; set; }
public virtual ICollection<ResultTesting> ResultsSet { get; set; }
}
答案 0 :(得分:3)
也许类“用户”有一些参考,例如:
class User
{
IList<T> T;
}
尝试使用约束器初始化此字段:
class User
{
public User
{
T = new List<T>();
}
IList<T> T;
}
答案 1 :(得分:1)
在我的情况下,我需要将集合initzialize从Hashset更改为Hashedset。