Я все еще учусь здесь и у меня есть вопрос о дочерних коллекциях. У меня есть объединенный корень под названием Audio, в котором есть коллекция AudioDownloads.
Загрузки представляют собой записи каждого IP-адреса, с которого загружается аудио, я не хочу, чтобы для каждого аудио были дублированные записи одного и того же IP-адреса.
В моем домене у меня есть следующая функция:
public virtual void Add(AudioDownload download)
{
if (!AudioDownloads.Contains(download)) {
TotalDownloads++;
AudioDownloads.Add(download);
}
}
И вот как я вызываю функцию Add:
var download = new AudioDownload();
audio.Add(download);
Это возвращает все загрузки из базы данных для этого аудио (которых может быть тысячи!), Также оно все еще добавляет загрузку, даже если она уже существует.
Я использую S # arp с подходом DomainSignature для сравнения моих сущностей.
Вот мой домен:
public class AudioDownload : Entity, ITenantSpecific
{
public AudioDownload() { DateAdded = DateTime.Now; }
[DomainSignature]
public virtual Audio Audio { get; set; }
[DomainSignature]
public virtual string Ip { get; set; }
public virtual DateTime DateAdded { get; set; }
}
У меня вопрос ... даже если я могу заставить AudioDownloads не добавлять повторяющиеся записи, я должен вообще так делать?
Большое спасибо!
Пол