Мое приложение - многопользовательский агрегатор подкастов, использующий NHibernate 2.1 (и .NET 4.0, если это что-то меняет). Я также полный NHibernate n00b.
Сведения о каждом подкасте сохраняются только один раз, и пользователи подписываются на подкасты, поэтому между подкастами и пользователями существует сопоставление «многие ко многим», которое я сопоставил в своей базе данных с таблицей подписок:
Subscriptions(UserId, FeedId)
У меня также есть таблица UserFeedItems, в которой хранится информация о пользователях за элемент:
UserFeedItems(UserId, FeedItemId, IsNew, ListenCount, etc.)
Моя объектная модель немного отличается:
class Podcast {
IList<PodcastFeedItem> FeedItems { get; set; }
bool HasNew {
get {
// return true if any of the FeedItems are new
}
}
}
class PodcastFeedItem {
bool IsNew { get; set; }
}
class User {
IList<PodcastFeed> Subscriptions { get; set; }
}
Какие отображения мне нужны в NHibernate для правильного сопоставления реляционной модели с объектной моделью? Разве я зашел слишком далеко, определив перечисленные выше таблицы «ссылок»? Здесь может быть важно упорядочение, так как, очевидно, мне нужно, чтобы каналы были организованы в порядке убывания.
Я прочитал документацию по сопоставлению коллекций , но я изо всех сил стараюсь привести примеры к моему собственному сценарию.