2012-04-13 19 views
0

データベースに新しいユーザーを保存しようとすると問題が発生します。私のコード:SaveOrUpdate()でコレクションをnullにすることはできません

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(); 
     } 
    } 
} 

エラー:

Collection cannot be null. Parameter name: c

がどのようにデータベースに新しいユーザーを保存するには?

P.S. session.Save(user1);この例外も私に教えてください。

更新: Userクラス

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

'User'クラスを投稿してください。 –

+0

@Rory McCrossanが更新されました – LuckSound

+0

再利用の代わりに新しいユーザーを作成しますか? – abatishchev

答えて

3

たぶんクラス "ユーザー" は、例えばいくつかの参照、があります。

class User 
{ 
    public User 
    { 
    T = new List<T>(); 
    } 
    IList<T> T; 
} 
+0

ありがとうございます) – LuckSound

1
:constractorでこのフィールドを初期化するために

class User 
{ 
    IList<T> T; 
} 

てみてください

私の場合、私はコレクションのinitzializeをHashsetからHaに変更する必要がありましたシェードセット。

関連する問題