Aktywne Wpisy

Freeburger97 +68
Do twojego domu przychodzi #femboy ściąga buty i kładzie tak nogi na stół, co robisz?
źródło: IMG_20240812_160549
Pobierz
bobsley33 +138
Skopiuj link
Skopiuj link
źródło: IMG_20240812_160549
Pobierz
Wykop.pl
class Customer
{
public int? CustomerId { get; set; }
public string Name { get; set; }
// inne dane...
}
class Order
{
public int? OrderId { get; set; }
// inne dane...
public Customer Customer { get; set; }
public List Products { get; set; }
}
class Product
{
public int? ProductId { get; set; }
public string ProductName { get; set; }
// inne dane...
}
Żeby taki model odwzorować w bazie będę musiał zrobić normalizację ze względu na tabele Order (która może zawierać wiele produktów). Baza więc będzie miała postać jak na załączonym zdjęciu (3 kropki to jakiś kolejne dane).
Pytanie jest czy mogę teraz w EF zmapować bazę do mojego pierwotnego modelu. Będę wdzięczny za odesłanie do konkretnych materiałów.
#programowanie #csharp #entityframework #pytanie
źródło: comment_BRHpu4o8gED0n92nkVhVkXuvrADTBDDC.jpg
PobierzA poza tym, czemu Twoje Id w tych klasach jest nullable? :P chyba coś nie tak napisałeś.
https://msdn.microsoft.com/en-us/library/jj200620.aspx?f=255&MSPPError=-2147217396
I najlepiej zamiast List - ICollection.
public virtual ICollection Products { get; set; }
(oczywiście jeśli to miałby być Twój Code First)
Stworzyłem sobie pustą bazę danych typu "localDb" o nazwie "StoreDb"
Mój model, context i connection string są na załączonym obrazku.
Problem jest taki, że gdy próbuje cokolwiek zdziałać na tej bazie to wyskakuje mi błąd:
"Nie można odnaleźć żądanego dostawcy danych programu .Net
źródło: comment_RxhKCeCl6JPW67FpXMqxbV7OuAL4tKRD.jpg
PobierzproviderName="System.Data.SqlClient"
Z dwóch powodów:
Jeśli masz "Id" w klasie "Store" to oczywistym jest, że jest to StoreId. (chyba ze to klucze obce wtedy masz inne nazwy, ale to EF generuje sam). A dwa, standardowa konwencja nazewnicza EF weźmie propercje o nazwie "Id" i ustawi na niej klucz główny. Tak to musialbys recznie dac atrybut [Key]
Zresztą ten oryginalny connection string został sam wygenerowany (po dodaniu bazy danych do projektu), ja jedynie zmieniłem nazwę connectionString'a na StoreDbContext
I zainstauj sobie może normalną wersje w sensie SQL Express.
Rozumiem, że Management studio jest wymagana do jakiejkolwiek konfiguracja serwera i bez tego narzędzia się nie obejdzie (jest jeszcze opcja SQL Server 2014 Express with Tools ale
co do zasobów - nie przejmuj sie tym, jest praktycznie nie zauważalne. mam to i na kompie firmowym i na kompie normalym,