.NET 5 i EntityFramework - podstawy

1

Albo nawet czystym tekstem. Zależy do czego to jest potrzebne.

0
somekind napisał(a):

Albo nawet czystym tekstem. Zależy do czego to jest potrzebne.

Tylko czy wtedy da się skorzystać z możliwości np. filtrowania. Teoretycznie mając np. cenę jako normalną kolumnę mogę sobie wyciągnąć wszystkie itemy tańsze niż:

context.Items.Where(x => x.Price < 500).ToList();

jak to zrobić mając taką daną w strukturze xml? EF pozwoli mi to jakoś ogarnąć?

0

Ale cenę to chyba ma każdy produkt, więc jaki w ogóle byłby sens umieszczać ją w dynamicznych atrybutach?

0

@somekind: Po prostu był to pierwszy atrybut, o którym pomyślałem ;) Oczywiście chodzi mi o coś czego nie ma każdy. Lepszym przykładem będzie tutaj data przydatności:

context.Items.Where(x => x.ExpiredDate < DateTime.Now).ToList();

Edit:
Czy jeżeli w modelu Item zrobie sobie jakieś properties NotMapped z listą atrybutów i ich wartości to mogę w trakcie wyciąganai tych danych z db z tego skorzystać?

1

Nie wiem jak działa NotMapped, ale dziwne gdyby jego użycie sprawiało, że coś można z bazy pobrać. No, ale to w końcu EF.

Mnie tu bardziej od dostosowanie architektury do wymagań chodzi, a nie o używanie konkretnego narzędzia.
Gdyby np. te atrybuty miały służyć tylko do opisu, to po prostu wsadzałbym je jako jeden tekstowy opis.
Ale jeśli ma być filtrowanie, no to już sprawa się komplikuje, no bo można:

  • zrobić EAV jak pokazałem wyżej, wówczas wadą jest dużo tabel, dość skomplikowane zapytania z wieloma złączeniami
  • wsadzić XML/JSON z listą atrybutów do kolumny, wówczas struktura bazy jest prosta, ale potrzebne jest wyszukiwanie w XML. Bazy to zazwyczaj potrafią, ale ORM niekoniecznie obsługuje.

Które z tych rozwiązań jest lepsze? Nie mam pojęcia. Moim zdaniem ten akurat aspekt to raczej bazodanowy problem, więc może zajrzy tu jakiś ekspert od baz danych typu @Panczo @wloochacz czy @Marcin.Miga i się wypowie?

2

@somekind:

wsadzić XML/JSON z listą atrybutów do kolumny, wówczas struktura bazy jest prosta, ale potrzebne jest wyszukiwanie w XML. Bazy to zazwyczaj potrafią, ale ORM niekoniecznie obsługuje.

JSON Mapping

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