Moje modele EF wyglądać następująco:ASP.NET Entity Framework 6 HashSet lub lista dla kolekcji?
public class ContentStatus
{
public ContentStatus()
{
this.Contents = new List<Content>();
}
public int ContentStatusId { get; set; }
public string Name { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
Jednak widziałem też implementatins wygląda tak:
public class ContentStatus
{
public ContentStatus()
{
this.Contents = new HashSet<Content>();
}
public int ContentStatusId { get; set; }
public string Name { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
Oto DDL dla tego obiektu:
CREATE TABLE [dbo].[ContentStatus] (
[ContentStatusId] INT NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
CONSTRAINT [PK_ContentStatus] PRIMARY KEY CLUSTERED ([ContentStatusId] ASC)
);
Czy ktoś powiedz mi, z którego powinienem skorzystać, a nawet czy istnieje różnica i kiedy będę używał Listy oraz kiedy HashSet, jeśli to dotyczy.
Dzięki
'HashSet' może być iterowany. Każda klasa, która implementuje 'IEnumerable' może, i zarówno' List 'jak i' HashSet 'implementują to. –
@XavierPoinas zaktualizował odpowiedź ... Bóg wie, skąd wziąłem ten pomysł ... –
Zakładam, że Hashset będzie kosztowniejszy w przypadku insertów, ponieważ zapewnia unikalność i dlatego musi być porównywany z innymi wpisami lub przynajmniej z ich skrótami, ale mniej kosztowne do usunięcia (zakładając, że hasz znajdzie elementy szybciej niż lista wyliczeń). –