EF Core - Jak zainicjalizować listę tylko przy pierwszym utworzeniu obiektu?

0

Cześć, mam pytanko: załóżmy, że mamy taki model:

Chciałbym mieć Data, która ma domyślne 4 Itemy, które później można nadpisać

public class Data
{
	[Key]
	public int Id { get; protected set; }

	public List<Item> Items { get; set; } = new List<Item>(4) { new Item(), new Item(), new Item(), new Item() };

	public DateTime CreationDate { get; protected set; }

	public Data()
	{
		CreationDate = DateTime.Now;
	}   
}
public class Item
{
	[Key]
	public int Id { get; protected set; }
	public string Text { get; set; } = "default";
}

ewentualnie gdy te dodawanie nowych Itemów dam do ctora

I zrobię

// już istniejący w bazie obiekt mający 4 wypełnione Itemy prawdziwymi danymi
var pre = _db.Data.Find(_id).Items.Count(); // 4, prawdziwe dane

var el = _db.Data
		.Include(q => q.Items)
		.Where(x => x.Id == _id)
		.FirstOrDefault();
		
var post = _db.Data.Find(_id).Items.Count(); // 8, prawdziwe dane + puste

To nagle moja lista ma 8 elementów, a nie 4 - dlaczego? btw. Przy kolejnych wywołaniach nie robi się 12, 16, 20, itd, a zostaje 8.

I w sumie, jeżeli lista się zmienia, to dlaczego CreationDate nie?

0

Ktoś coś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1