Aktywne Wpisy
g0blacK +610
Są takie twarze, które po prostu denerwują. Sam fizys sprawi, że człowiek się denerwuje i aż się w nim gotuje. Też tak macie? Jeśli tak, to zapraszam do zabawy, Ja zaczynam #glupiewykopowezabawy #takaprawda #niepopularnaopinia
✨️ Obserwuj #mirkoanonim
Hej mirki
mam 17 lat i nie chcę pić alkoholu do osiemnastki. No i na osiemnastce pierwszy raz będę pił wódkę. I tu pytanie - jak się przygotować tak aby nie odpaść po dwóch godzinach? Od razu mówię że coś takiego jak wcześniejsze rozpoczęcie picia u mnie w grę nie wchodzi.
#pytanie #alkohol #pytaniedoeksperta #alkoholizm
──────────────
Hej mirki
mam 17 lat i nie chcę pić alkoholu do osiemnastki. No i na osiemnastce pierwszy raz będę pił wódkę. I tu pytanie - jak się przygotować tak aby nie odpaść po dwóch godzinach? Od razu mówię że coś takiego jak wcześniejsze rozpoczęcie picia u mnie w grę nie wchodzi.
#pytanie #alkohol #pytaniedoeksperta #alkoholizm
──────────────
Chcę stworzyć dwie tabele do mojej bazy danych. Nazywają się "Notes" i "Tags".
[[Tak wygląda kod]](http://pastebin.com/ijsApEcD)
Chcę żeby w ICollection np. klasy Notes były zachowane odnośniki do konkretnych Tagów znajdujących się w bazie. Ma to też działać na odwrót: chcę wiedzieć które notatki mają konkretny tag, toteż w klasie "Tags" jest ICollection.
Dodałem właśnie migrację, i oto co proponuje mi Visual Studio:
[[link]](http://pastebin.com/KJRb8jzR)
Co to za tabela "dbo.TagsNotes" chce mi się utworzyć w bazie danych? Czy model który utworzyłem, będzie faktycznie spełniał swoje zadanie (wg. tego jak planuję)?
jeszcze jeden problem mam: dodaję nową notatkę do bazy [[kod]](http://pastebin.com/nmhw9Edh)
Problem polega na tym, że jak tworzę nowego Tag'a, to muszę mu przypisać notatkę do zmiennej "ICollection Notes". Tyle że ta notatka jeszcze nie istnieje, bo jest w trakcie tworzenia, więc jak mam ją dodać do zmiennej?
Dokładny opis problemu w komentarzach w kodzie.
to:
tag = db.Tags.Where(t => t.Name == tagName).Single();
może wyglądać o wiele ładniej:
tag = db.Tags.Single(t => t.Name == tagName);
Przecież to notatka zawiera tagi.
Wiec wycigasz notatkę:
var notatka = db.Notes.First(); // tylko przyklad
var tag = new Tag();
tag.name = "bekazwegetarian"
notatka.Tags.Add(tag);
string myTag = "bekazwegetarian";
var tag = db.Tags.SingleOrDefault(t=> t.name == myTag);
if(tag == null)
{
//taga nie ma, wiec dodajemy do bazy.
db.Tags.Add(new Tag(){ name = "bekazwegetarian" });
}
var notatka = db.Notes.First(); // lub tworzymy kompletnie nową i dodajemy do bazy.
notatka.Tags.Add(db.Tags.Single(t=>t.name == myTag));
db.SaveChanges();
pewnie można by jeszcze ładniej...
Ale nie do końca jednak zrozumiałem odpowiedź na moje pytanie.
Muszę. Chcę żeby mając notatkę można było zobaczyć jakie ma tagi. Chcę też, żeby mając tag, można było zobaczyć które z notatek go mają (tak jak na wykopie, klikasz na tag i ci wyskakują wszystkie wpisy z tym tagiem). Czyli muszę dodać
Nie!
Dodajesz tylko w jedną stronę.
Ktoś dodaje notatkę z tagami.
tworzysz notatke:
var notatka = new Notatka()
// wypelniasz pola w notatce.
var tagi = new List(); // czy skądś je tam pobierasz, przychodzą w requescie, cokolwiek.
dodajesz do notatki tagi:
notatka.Tags = tagi;
(lub jeśli to jakas tablica z tagami a nie lista to tak jak miales w foreach
foreach(var tag in tags)
klasy powinieneś mieć Note i Tag (liczba pojedyncza), bo reprezentują one pojedynczy element.
W DbContexcie tworzysz liste elementów (DbSet) wiec tam jest liczba mnoga.
public DbSet Notes {get; set;}
I pola pisz raczej CamelCase, tzn nie "ID" tylko "Id".
To konwencja, ale dosyć istotna. EntityFramework posiada swoje konwencje i np może szukać Ci pola które będzie dokładnie "Id" a nie "ID" by na nim utworzyć klucz. Dla