#programowanie #csharp #aspnet #dotnet #entityframework
.NET 4.6 MVC

Mam problem ze zrozumieniem i załapaniem dobrej praktyki przy używaniu entity frameworka w dosyć podstawowej sytuacji. Mam dwa modele, Project i Note. Chciałbym, aby były one ze sobą w relacji jeden do wielu. Zastanawiam się jak to zrobić, żeby wycisnąć jak najwięcej z EF i nie pisać zbędnego kodu.

Tutaj definicje modeli: http://pastebin.com/Q05RfpgQ

Przede wszystkim chciałbym móc zamienić ProjectID na Project.Name podczas wyświetlania Note'sów.
@Viters: To jest jak najbardziej poprawna praktyka. EF wykrywa, że Twoja właściwość ProjectId jest obcym kluczem. Jeżeli jest ona nullable to relacja jest opcjonalna. Jeżeli nie jest nullable to relacja jest wymagana i przy usuwaniu stosowane jest usuwanie kaskadowe. Wszystko ofc można nadpisać, ale taka jest konwencja. Masz linka jak coś: Akapit: Relationship Convention
Mirki jak projektujecie bazę danych w Entity Framework + MS SQL Server?

Chciałbym uzyskać w rzeczy:
- zaprojektować bazę za pomocą diagramu
- wykorzystując diagram wygenerować klasy w podejściu code first

Jak najlepiej się za to zabrać i jak wy projektujecie BD? Oczywiście w założeniu jest, że BD jest bardziej skomplikowana niż kilka tabel i nie chcemy tracić danych z bazy po każdej zmianie.

#programowanie #csharp #bazydanych #entityframework #sql
Mirki mam problem z bazą danych. Uczę się z książki i robię prawie dokładnie to samo co jest tam napisane(mam tylko zmienioną nazwe klasy i bazy danych) lecz wywala mi błąd i nie wiem czemu. Nie umiem go znaleźć. Connetionstring jest na 100% dobry więc nie wiem już gdzie leży błąd. Czytałem informacje które wyrzuca mi visual lecz wiele mi nie pomogły... Gdy działałem bez bazy danych tylko na listach to wszystko
Pobierz emeryt112 - Mirki mam problem z bazą danych. Uczę się z książki i robię prawie dokład...
źródło: comment_wOOqipEK6Pf6scv181JEjWOi2wTEjpLv.jpg
#entityframework #csharp #dotnet #programowanie #pytanie

To już dzisiaj moje drugie pytanie do ef ale tym razem już sam sobie nie odpowiem ( ͡° ͜ʖ ͡°).

Mam takie kod który dodaje record do bazy (ef w trybie disconnected):

using (var context = new StoreDbContext())
{
using (var transaction = context.Database.BeginTransaction())
{
try
{
context.Customers.Attach(order.Customer);

foreach (var productOrder in order.Products)
{
context.Products.Attach(productOrder.Product);
context.ProductOrders.Add(productOrder);
}

context.Orders.Add(order);
context.SaveChanges();
transaction.Commit();
}
catch (Exception
@PanCogito: Strasznie przekombinowane. Na twoim miejscu pozbyłbym się tych wszystkich attachów. Dobrze by było żebyś pokazał jak wyglądają te twoje encje. Generalnie zakładam, że oprócz navigation properties zrobiłeś też normalne mapowania na klucze obce, tzn. np. w klasie Order oprócz public virtual Customer Customer; masz też public int CustomerId. Jeśli tak jest to przy dodawaniu do contextu nowego Order w polu Customer daj nulla, przypisz CustomerId (które przecież znasz). Wtedy
@niepoprawnyhumanista: @pikej100: Macie racje. Na początku miałem tylko referencje bez kluczy. Na necie były takie przykłady, że w trybie diconnected z tym relacjami to takie cyrki trzeba odwalać. Dodałem potem faktycznie klucz obcy ale nie zdawałem sobie sprawy, że on tak upraszcza sprawę.
Faktycznie teraz chodzi elegancko. Teraz wiem, że wszystkie referencje powinny mieć zdefiniowany też klucz bo bez klucza trzeba się bawić w takie dołanczanie do konktekstu albo zmieniane
#entityframework #csharp #dotnet #programowanie #pytanie

Chcę w trybie disconnected (czyli tworze nowy context do operacji i przekazuje obiekt) dodać entity z referencjami w taki sposób żeby referencje nie były też dodawane jako nowe wiersze do tabeli, ale żeby były referencjami do istniejących wpisów.
Np mam kalse Order z referencjami: Customer i Products.
Chcę dodać do bazy nowy obiekt Order ale nie chcę żeby Customer i Products były też dodawane jako nowe obiekty
@druy1000: :
szczerze mowiac myslalem ze rozpoznaje tylko "Id". No ale ok.
Niemniej jednak zgadzam się z @Kireino ze jest to zupełne niepotrzebne zaciemnianie kodu.
Jesli mam encje "Product" i pole "Id" to logiczne ze to ID produktu.

To tak samo jakby miec pola "Name", "Price", "Quaniity" i wszedzie pisac "ProductName", "ProductPrice", "ProductQuantity".
:P
[ #csharp #dotnet #programowanie #dotnetnews #entityframework #microsoft ]

Chyba news dnia: MS ogłasza, że SQL Server będzie chodził na Linuxie
https://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux/

MS nawiązuje współpracę z Eclipse Foundation
https://blogs.msdn.microsoft.com/visualstudio/2016/03/08/microsoft-joins-the-eclipse-foundation/

Fajne narzędzie do sprawdzania kompatybilności naszej aplikacji z wyższymi wersjami .net frameworka
https://blogs.msdn.microsoft.com/dotnet/2016/03/03/net-framework-compatibility-diagnostics/

Fajny projekt apki w C# do zmieniania wysokości głosu
http://www.codeproject.com/Tips/1082074/Audio-Pitch-Shifter

Kolejny sposób na stworzenie abstrakcji na kontekstem Entity Framework
http://www.codeproject.com/Tips/1081815/Mocking-EF-DbContext

Kilka słów na temat przyszłości MS na rynku urządzeń mobilnych
https://redmondmag.com/articles/2016/03/01/last-call-for-windows-mobile.aspx?m=1
[ #csharp #dotnet #programowanie #dotnetnews #maavfeed ]

Miło znaleźć ciekawy artykuł na zagranicznej stronie, sprawdzić autora i odkryć, że jest Polakiem.
Wczoraj tak miałem z Martą Sztybor, dzisiaj Paweł Grudzień.

#dotnetcore
Paweł Grudzień - New Toolchain For .NET – Dotnet CLI

#entityframework
Ricardo Peres - Implementing Missing Features in Entity Framework Core

#performance
Alex Hildyard - Fast Square Root calculation for the BigInteger class in .NET

#dotnet
Peter Vogel - Add Custom
@angular: po co piszesz testy CRUD? To są przecież elementarne operacje więc nie warto ich testować. Jak już chcesz takie rzeczy robić to ogarnij jakąś bazę w pamięci, dorzuć elementy do bazy przy setUp i wykonuj operację. Jak będziesz sprawdzać delete to i tak będziesz musiał zrobić selecta, tak samo z updatem i insertem.
return context.SaveChanges() == 1;


@angular: SaveChanges() zwraca liczbę wpisów, które zostały zapisane do bazy. Jeśli wyedytujesz kilka rekordów i wtedy wywołasz SaveChanges() to zwrócony wynik >1.
Mirki, robię projekt zaliczeniowy i mam problem. Otóż pisząc aplikację .NETową przygotowuję coś bardzo podobnego do tego:
https://youtu.be/zWFoZb6EiwU?t=1h23m16s Po kilku dniach siedzenia i zrobienia layoutu stronki itd przyszedł czas na dołączenie bazy danych (korzystając z metody Code first) no i wszystko ładnie tylko mniej więcej w tym momencie pojawia się problem. Wyrzuca mi taki błąd jak w obrazku w linijce:
IdentityResult result = await UserManager.CreateAsync(user, model.Password); (w tym momencie mam kod identyczny
Pobierz Toms94 - Mirki, robię projekt zaliczeniowy i mam problem. Otóż pisząc aplikację .NETo...
źródło: comment_c91shI4UGbUIjdIYU6N21jaquo4e4Wkb.jpg
#programowanie #aspnet #csharp #entityframework

Jest tu ktoś ogarniający dobrze asp.net'a?
Mam taki projekt: [[github]](https://github.com/MyPCIsBetter/aspnet-vnext-webapi-test)
Próbuję zrobić API do aplikacji. Zamiast danych z sql'a zwraca mi 502 bad gateway. Chodzi o ten adres konkretnie: http://localhost:58607/api/notes/suggested
Rzecz dzieje się konkretnie [[w tym controllerze]](https://github.com/MyPCIsBetter/aspnet-vnext-webapi-test/blob/master/src/ConsoleNotepad/Controllers/NotesController.cs) w funkcji GetSuggestedNotes().

Niby takie proste, a siedzę już nad tym drugi dzień ( ͡° ʖ̯ ͡°)