1

NHibernate で再び問題が発生しました。同時に 2 つの子オブジェクトを親に追加したいと考えています。問題は、最初の子だけがコミットされ、2 番目の子が無視されることです。2 番目の子のエラー メッセージも表示されません。

public void CreateKeyword(CreateKeywordRequest request)
{
    Collection collection = _collectionRepository.FindCollection(request.IdentityToken, request.CollectionName);

    collection.AddKeyword(request.CategoryName, request.KeywordName, request.KeywordDescription);

    _uow.Commit();
}

-

public void AddKeyword(string categoryName, string keywordName, string keywordDescription)
{

    Category category = Categories.Where(c => c.CategoryName == categoryName).FirstOrDefault();

    Keyword keyword = new Keyword { Category = category, KeywordName = keywordName, Description = keywordDescription };

    category.Keywords.Add(keyword);

    Test testOne= new Test{ Keyword = keyword, name = "test1" };
    Test testTwo= new Test{ Keyword = keyword, name = "test2" };

    //Only testOne gets committed and testTwo gets ignored
    keyword.Tests.Add(testOne);
    keyword.Tests.Add(testTwo);

    ThrowExceptionIfKeywordIsInvalid(keyword);
}
4

1 に答える 1

0

Tests はある種の Set (ISet など) であり、Test の Equals メソッドは Keyword プロパティでのみ比較されると思われます

于 2012-09-07T15:23:24.087 に答える