Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von [email protected]
Thema: [Gelöst] - EF 6 - Relationen (Listen) zu ein Objekt nachladen
Am im Forum: Datentechnologien

@Abt:

gibt aber auch Situationen wo das automatische/fixe laden von Navigation-Properties (eagerloading) kontraproduktiv ist.

Ich verwende daher virtual und hole mir die Daten über "include" dazu wen ich sie wirklich brauche.

lg

Thema: [Gelöst] - EF 6 - Relationen (Listen) zu ein Objekt nachladen
Am im Forum: Datentechnologien

Hi...

das liegt mit Sicherheit am automatisch generierten Code oder an der bereits bestehenden Datenbank...

Was du gerne hättest sollte eigentlich so aussehen:

public partial class User
     {
         public User()
         {
             this.Roles = new List<Role>();
         }

         public System.Guid ID { get; set; }
         public string UserAccount { get; set; }
         public virtual ICollection<Role> Roles { get; set; }
     }

public partial class Role
     {
         public Role()
         {
             this.Users = new List<User>();
         }

         public System.Guid ID { get; set; }
         public string Name { get; set; }
         public virtual ICollection<User> Users { get; set; }
     }
 

Thema: [Gelöst] - EF 6 - Relationen (Listen) zu ein Objekt nachladen
Am im Forum: Datentechnologien

Hi..

_unitOfWork.Context.Users.Include("Users_Roles").Where(s => s.UserAccount == username).FirstOrDefault<User>();

Du holst dir hier nur die User mit den User_Roles aus der Datenbank.
Es wurde aber nicht angegeben, dass zu den User_Roles auch noch die Role geladen werden soll.

Du musst hier also dein "include" erweitern.

_unitOfWork.Context.Users.Include("Users_Roles.Role").Where(s => s.UserAccount == username).FirstOrDefault<User>();

Dann ist auch User.User_Roles[0].Role nicht mehr null.

lg

Thema: Design-Frage Webshop
Am im Forum: Web-Technologien

Hi Abt,

ist natürlich eine sehr interessante Info.

Würd mich interessieren ob es auch Seiten (produktiv) gibt die nach diesem Konzept arbeiten und ordentlich indiziert sind.

lg

Thema: Design-Frage Webshop
Am im Forum: Web-Technologien

Hi...

@Abt, so wie ich das interpretiere würdest du beide Teile Backend und Frontend(Storefront) mit "statischem" HTML, Javascript(Angular) und WebApi aufbauen?

Das passt vermutlich aus Sicht eines Entwicklers weil das dann eben die aktuellsten Technologien sind.

Beim Backend bin ich voll bei dir.

Nur ist es aber auch so, dass ein Webshop nur verkauft wenn die Artikel bei Suchmaschinen gut gefunden werden und da kommt es auf die Indexierbarkeit einer Webseite an. Ich bin mir nicht 100% sicher aber Google kann mit "Full-Ajax" Webseiten bzw. SPAs nicht wirklich viel anfangen.

Ich würd mich niemals trauen einen Webshop online zu stellen den Google nicht 100%ig indexen kann. Hier geht meiner Meinung nach (noch) kein Weg an serverseitig generierten Artikelseiten vorbei.

Thema: Hololens - Möglichkeiten in der Zukunft
Am im Forum: Smalltalk

Zitat
heute Abend 18 Uhr deutscher Zeit startet der Ticketverkauf

Hast ein Ticket bekommen?
Waren ja leider in weniger als einer Stunde ausverkauft... :(

lg

Thema: Debugging erkennen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi...

if (System.Diagnostics.Debugger.IsAttached)
{
   //...
}
else
{
   //...
}

LG

Thema: LINQ Guidelines: Wann LINQ benutzen und wann foreach?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi...

ich versteh grad nicht worauf du hinaus möchtest.

Zeig mal Code-Schnippsel zur Verdeutlichung.

lg

Thema: Ausblenden mehrerer tr-Elemente in einer Tabelle
Am im Forum: Web-Technologien

Hi...

das kann auch nicht funktionieren....


$('.hideshowbutton').click(function () {
             $(this).find('.innerContent').each(function () {

             }
}

Das "this" bezieht sich auf den Button... und "find()" sucht in den Subelementen von "this" also vom Button und da gibt's aber nur noch den span.
Du musst aber im übergeordneten "tbody" suchen.

Wie du jetzt von deinem Button-Element das 3 Ebenen darüber liegende Elternelement anwählst ist aber Javascript-Grundlagen, eigentlich auch this und find()...


lg

Thema: Datei als String herunterladen
Am im Forum: Rund um die Programmierung

Hi...

ist in dem String eine Url drinnen die zum Download führt oder soll der String "downgeloadet" also gespeichert werden?

lg

Thema: Report Builder 3.0 / Leere Zeile in Tablix
Am im Forum: Datentechnologien

Hi...

das ist dann ein RDL bzw. RDLC - Format nehm ich an...

Ich hab sowas ähnliches, nämlich 2 unterschiedliche Positions-Typen im Dokument. (Artikel / Freitext).

Ich hab die Zeile für jeden Typ erstellt und dann jede Zeile über die Sichtbarkeit ein bzw. ausgeblendet je nach Positionstyp.

Für die Freitext-Zeile wurden einfach alle Spalten zu einer zusammengeführt.

lg

Thema: Geeigneter Webspace für C#-PHP-Kommunikation
Am im Forum: Web-Technologien

Hi...

Zitat
Deshalb habe ich das hier mal als "speziellen Fall" formuliert.

Dass eine Applikation übers Netzwerk/Internet mit einem Webservice kommuniziert ist bei Weitem kein Spezial-Fall. Egal ob das Service einen Licence-Key abgleicht oder das Wetter für morgen liefert, ist das eher eine Standard-Aufgabe.

PHP/Mysql-Hoster gibt es wie Sand am Meer. Kostenlos? Keine Ahnung aber für ein paar Euro pro Monat sollte was brauchbares dabei sein. Wir werden hier für dich sicher nicht einen geeigneten Hoster suchen. Ausserdem passt "kostenlos" für den Webspace mit "Lizenz-Key" für die Applikation gefühlsmäßig nicht ;)

Ob du SOAP, REST oder was anderes für die Kommunikation verwendest musst du selber entscheiden. Ausserdem solltest du auch daran denken, dass Webservices abgesichert gehören.

Die Sache mit Lizenz-Systemen hat ja inflames2k bereits angesprochen.

Warum möchtest du für die Serverseite PHP verwenden und nicht gleich auch .net/C#?

LG

Thema: Problem mit DelegateCommand, ICommand, override
Am im Forum: GUI: WPF und XAML

Hallo...

Zitat
Warum findet er keine passende Methode?

Weils eben keine gibt die überschrieben werden könnte.

Weißt du überhaupt was "override" in der DelegateCommand-Klasse macht bzw. machen soll?

lg

Thema: Wo .replace() platzieren? [CSV to DB]
Am im Forum: Datentechnologien

Hi...

bing mal nach "c# parse csv with text qualifier".

Du musst nämlich auch bedenken dass in Text-Spalten eventuell auch noch zusätzliche Anführungszeichen (wenn auch escaped) enthalten sein können.

Und die wären mit einem "Replace()" auch alle weg.

lg

Thema: Typescript Preview Window
Am im Forum: Web-Technologien

Hi...

es gibt bei "Extras" => "Optionen" => "Webessentials" => "Typescript" einen Schalter mit dem man die Preview an bzw. abdrehen kann...

lg

Thema: HttpWebRequest mit JavaScript
Am im Forum: Web-Technologien

Hi...

das HtmlAgilityPack ist nur ein DOM-Parser und führt daher keine Scripte aus.
Deshalb kann man damit auch keine Javascript-Funktionen aufrufen.

Dafür benötigst du einen (Headless)-Browser.

lg

Thema: asp.net mvc 5 nuget-plugin-system
Am im Forum: Web-Technologien

Hi...

naja, hab mir fast gedacht dass es in der Praxis dann etwas komplizierter ist als es die Theorie den Anschein macht.

Orchard-Sourcecode hab ich mir schon geholt.

Thema: asp.net mvc 5 nuget-plugin-system
Am im Forum: Web-Technologien

Hi...

im Internet findet man ein paar Ansätze wie man eine MVC-Anwendung mit Hilfe von Nuget pluginfähig machen könnte. Mir würde dieser Ansatz extrem gut gefallen da man vieles "Out of the box" bekommt (Veröffentlichung, Hosting, Versionierung, Abhängigkeiten, Updaten von Packages,....).

Nur was man nirgends findet sind Infos wie dann solche Plugins entwickelt werden.

Bei Packages die nur dlls enthalten ist das jetzt nicht so das Problem (eigenes Projekt).
Was aber wenn Plugins aufwändiger sind bzw. mehr enthalten als nur dlls die in den bin-Ordner kopiert werden müssen.

Beispiel:

Theme für eine Webseite
Hier gibt's Views (cshtml), Images, Css-Dateien.
Die müssen beim Installieren des Packages ja in die Application kopiert werden.

oder
Modul für das Backend
Hier gibt's neben Controllern ebenfalls Views, JS-Files,... die in die Application kopiert werden müssen.


Wie könnte hier die Entwicklungs-Seite aussehen?
Entwickeln eines Plugins, testen/debuggen, veröffentlichen des Packages, Quellcode-Verwaltung...

Hat das schonmal wer ausprobiert?

lg

Thema: Text aus einer Datei blockweise einlesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi...

lies die Fehlermeldung...

du willst der StringCollection am Index n etwas zuweisen.
Nur gibt's den Index n nicht und deswegen kommt die Fehlermeldung.

Thema: Verständnisfrage zum Entity Framework
Am im Forum: Datentechnologien

Hi maltek,

ich gehe mal davon aus dass du dich beim Einfügen der Source-Schnippsel vertippt hast. Das würde nämlich nicht funktionieren bzw. nicht mal kompilieren. Die ICollection nennst du "comments", aber beim Include bzw. dem Zugriff darauf verwendest du "commentList".

Und dann gibst du bei

context.Entry(_post).State = System.Data.Entity.EntityState.Modified

lediglich dem _post-Objekt einen modified-Status.
Dass auch der Comment "modified" ist kriegt das EF nicht mit...

Ich würde hier generell eher mit "UnitOfWork" arbeiten.


static void Main(string[] args)
 {
     using (var context = new Context())
     {

            PostLogic postlogic = new PostLogic(context);
            Post post = postlogic.GetPost(1);

             post.text = "Hello World";
             post.commentList.First<Comment>().text = "ich bin aktualisiert";

             postlogic.UpdatePost(post);
     }
 } 

Dann sparst du dir


context.Entry(_post).State = System.Data.Entity.EntityState.Modified;
weil der Context hier sowieso alle Änderungen tracked.

lg

Thema: Form-Anwendung mit mehreren Seiten, aber nur einem Form
Am im Forum: GUI: Windows-Forms

Hallo _Troy_

Das hier sollte weiterhelfen:

[FAQ] Assistenten/Wizards: Mit Windows Forms eine Art Frameset einer Website nachbauen

Thema: WebBrowser-Control: Download File, wenn der Dateiname nicht bekannt ist
Am im Forum: GUI: Windows-Forms

Hi...

alternativ kannst du auch die httpwebrequest-Klasse verwenden. HttpWebRequest-Klasse
lg

Thema: Korrektre Nutzung von POCOs: Wie POCOs um Business-Logik ergänzen?
Am im Forum: Rund um die Programmierung

Hallo SuperVisor,

das Wichtigste vorne weg...

"partial classes" funktionieren innerhalb der selben Assembly und im selben Namespace.

Wenn also "MyProject.Data" und "MyProject.Business" 2 unterschiedliche "Projekte" sind funktioniert dein Vorhaben so nicht

lg

Thema: wait-Funktion für Properties???
Am im Forum: GUI: WPF und XAML

Zitat
könntest du sie asynchron ausführen, und bei Erfolg die GUI über das PropertyChanged-Ereignis benachrichtigen
imho die einzig "saubere" Lösung...

Thema: Aufgabenverwaltung und Dokumentationssoftware gesucht.
Am im Forum: Smalltalk

Hallo Taladan,

das Problem kenn ich nur zu gut... ;)

Wir haben seit einiger Zeit "Ontime" (http://www.ontimenow.com) in Verwendung,
aber noch die "Desktop"-Variante (mittlerweile ja komplett webbasiert).
Damit werden alle Aufgaben,Bugs,Change-Request der Kundenprojekte gehandled. Über ein integriertes Wiki kann auch eine komplette Projekt-Doku angelegt werden. Wir sind sehr zufrieden damit.

Für ein neues etwas größeres Projekt evaluieren wir gerade die TeamFoundation-Services (http://tfs.visualstudio.com). Hier im speziellen die Integration/Kombination mit Visualstudio.


Bei uns war aber nicht die Auswahl der geeigneten Lösung das Problem sondern die "Kollegen" (Chef inkl.) dazu zu bewegen die gewählte Lösung auch wirklich aktiv zu nutzen und nicht nach ein, zwei Wochen in alte eingefahrene Strukturen zurückzufallen (z.B. Aufgaben per Wort, Mail, Skype,... weitergeben).

lg

Thema: Vs 2013 & Ef 6 erschienen
Am im Forum: Szenenews

Hi...

Zitat
...das heute der...
...gestern... ;)


Bei mir läuft's schon seit Mittag, feines Teil.

Und zum 6.0.0 Release von gestern gab's heute gleich das erste Update 6.0.1.

Thema: Azure wird 5 Jahre alt - doch wer nutzt es von euch?
Am im Forum: Smalltalk

Hi...

wir hatten auch Azure angedacht und sind dann aufgrund der Kosten bei unseren eigenen Root-Servern verblieben.

Was uns eigentlich sehr gefallen hat ist die Möglichkeit Projekte kurzfristig bzw. temporär zu skallieren. Wir bzw. unsere Kunden sind im Ecommerce tätig und da wäre es schon von Vorteil wenn man Spitzen wie z.B. vor Weihnachten durch Aufschalten zusätzlicher Instanzen abfangen könnte und diese danach wieder abdreht.

Mit eigenen Servern hat man immer wieder längere Lieferzeiten und 12/24-Monats-Verträge.

Aber momentan würde uns Azure für unsere Projekte um einiges mehr kosten. Und die Preise für SQL-Datenbanken sind sowieso eine Frechheit.

lg

Thema: KeyBinding: Nicht Command sondern Event auslösen?
Am im Forum: GUI: WPF und XAML

Hi...

wenn du nur im Codebehind arbeiten möchtest, könntest du das "KeyDown" oder "KeyUp"-Event verwenden.

Je nach dem obs nur bei einer TextBox oder dem gesamten Fenster greifen soll an der richtigen Stelle...

<TextBox Text="{Binding...}" KeyDown="DoSomething_KeyDown" />
oder

<Window xmlns="..." Title=".." Loaded="Window_Loaded" KeyDown="Window_KeyDown" >...</Window>

und im Eventhandler für Keydown kannst du dann den Eventhandler für den Button aufrufen.

lg

Thema: Entity Framework 5, SQL-Server, FOR XML
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL-Server 2008 R2

Hi...

Bei Queries bei denen mehrere Tabellen gejoined werden (vor allem bei mehreren 1:n Relationen) kommt es ja immer wieder zu ziemlichen Performance-Problemen.

Beispiel wäre:

Order
1:n OrderItem
1:n OrderActivity
1:n OrderPayments
1:n OrderDocuments

Gibt es 100 Orders, mit jeweils 5 OrderItems, 10 OrderActivities, 3 OrderPayments und 2 OrderDocuments und diese Daten werden über einen Query aus der Datenbank geholt (dbcontext.Orders.Include("OrderItesm").Include("Order")...) multipliziert sich die Anzahl der erhaltenen Datensätze...

Ich hab das testweise mal bei einer unserer produktiv-DB's probiert, da werden aus ca. 1000 Datensätzen gleich mal > 60000 die zurückgeliefert werden.

Nun hab ich rausgefunden, dass man über SubQueries und "FOR XML" die Relationen als XML in ein Feld laden kann. Das würde aus meiner Sicht die Performance erheblich steigern.

Ich hab das wieder über unsere produktiv-DB ausprobiert und die Ergebnisse verglichen. Bei den Querystats gabs trotz SubQueries weniger "Last". Dann hab ich das Ergebnis des JOIN-Queries als CSV gespeichert (also nur die Rohdaten) und das Ergebnis des XML-Queries (diesmal aber sogar alles als XML) als XML (also mit dem XML-Overhead). Die Dateigröße des CSV war ca. 140 MB, die Größe vom XML war ca. 1MB.

Das ist natürlich ein riesiger Unterschied mit dem ich eigentlich nicht gerechnet hab.

Die Frage ist jetzt ob die Sache mit dem "FOR XML" schon mal jemand (von euch) verwendet hat, vor allem vielleicht in Kombination mit dem EF?

Gibt's da Erweiterungen für das EF die das "können". Schließlich muss ja der SELECT-Query anders aussehen und das XML muss durch das EF wieder in ein Object deserialisiert werden.

Oder ist es sinnvoller das alles "per Hand" zu machen?


lg

Thema: Form in einem anderen Form anzeigen
Am im Forum: GUI: Windows-Forms

Hi...

was du suchst ist ein MDI (Multi Document Interface).

lg