[Test]
public void Artist_gets_stored_properly()
{
using (ISession session = NHHelper.GetSession())
{
Artist artist = new Artist() { Name = "Somathilaka Jayamaha" };
artist.Songs = new List<Song>()
{
new Song(){Artist = artist, Name = "Manamaala girawu"},
new Song(){Artist = artist, Name = "Sende andura"},
new Song(){Artist = artist, Name = "Sunilwan nuwan"}
};
foreach (var s in artist.Songs)
{
session.Save(s);
}
session.Save(artist);
}
using (ISession session = NHHelper.GetSession())
{
Artist artist = session.Query<Artist>().Single(x => x.Name == "Somathilaka Jayamaha");
Assert.AreEqual(3, artist.Songs.Count);
Assert.AreEqual("Sende andura", artist.Songs[1].Name);
}
}
public class Artist
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Song> Songs { get; set; }
}
public class Song
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string WebPath { get; set; }
public virtual string FilePath { get; set; }
public virtual bool Downloaded { get; set; }
public virtual Artist Artist { get; set; }
void Download(IDownloader downloader)
{
}
}
У меня есть приведенный выше тестовый пример, и он не работает в этой строке: Assert.AreEqual(3, artist.Songs.Count);
.Песни не спасаются, кажется.Я использую автоматическое отображение, и у меня есть Cascade.All()
для полей сбора в переопределениях отображения, и у меня отключена отложенная загрузка.Я не могу понять, почему этот тест не проходит.Как видите, я также вручную сохранил 3 песни, хотя, насколько я понимаю, мне не нужно делать это, когда у меня есть поле Cascade.All()
для Artist.Songs
.Может кто-нибудь сказать мне, что я делаю не так?Благодарю.
MS SQLServer 2005, .NET 3.5, FluentNHibernate 1.2.0.712