C# self reference an nested class übergeben?
Geizhals » Forum » Programmierung » C# self reference an nested class übergeben? (11 Beiträge, 318 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
...
Re(3): C# self reference an nested class übergeben?
mko
09.12.2016, 11:32:12
Wenn Info genau zwei Statistics-Datensätze haben soll, wie es sich in deiner Klasse darstellt, wäre die korrekte Abbildung meiner Meinung nach so, dass Info zwei Foreign Key-Felder auf Statistics hat.

Statistics kann die account_id nicht als Primary Key haben, wenn es zwei Statistics pro account_id gibt.

Ich würde es so abbilden:

public class Info
{
  long InfoId { get; set; } // oder halt AccountId als PK...
  long AccountId { get; set; }
  long Info1 { get; set; }
  long Info2 { get; set; }
  long Statistics1Id { get; set; }
  long Statistics2Id { get; set; }
  Statistics Statistics1 { get; set; }
  Statistics Statistics2 { get; set; }
}

public class Statistics
{
  long StatisticsId { get; set; }
  long MyValue1 { get; set; }
  long MyValue2 { get; set; }
  Info Info { get; set; }
}


Was hier noch komplett fehlt, sind die Entity Framework-Attribute. Du musst z.B. den Primary Key kennzeichnen, wenn er nicht Id oder KlasseId heißt. Bei den Foreign-Key-Feldern musst du kennzeichnen, zu welchen anderen Properties sie gehören (also z.B. Statistics1Id gehört zu Statistics1).

Man sollte, meiner Erfahrung nach, gutes DB-Design mit EF nicht einfach über Bord werfen :).

Ich sehe aber gerade, dass die Klassen, die du mir per PN geschickt hast, eigentlich doch ziemlich anders aussehen als deine abstrahierte Version ;). Und Attribute hast du eh auch schon dabei.

Da verstehe ich dein Problem aber nicht ganz, denn wo auch immer Statistics erstellt wird, musst du halt den PK = FK setzen, sei es am Client oder am Server.

Sehr kompliziert sowas über ein Forum zu klären (für mich) |-D.




Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung