Laden...

Forenbeiträge von Diräkt Ingesamt 615 Beiträge

22.08.2014 - 18:03 Uhr

Etwas schöner, leserlicher, übersichtlicher und einfacher wäre sowas:


Response.AddHeader("Content-disposition", string.format("attachment; filename={0}{1}.pdf",GetGlobalResourceObject("..","..") ,WebProfile.Current.KundenNr));

Beste Grüsse

Diräkt

10.08.2014 - 19:15 Uhr

Hallo DerPapenberg

Insofern es keine Rolle spielt wenn eine Abfrage mal ein paar Millisekunden länger dauert, würde ich unbedingt zur Verwendung des EF raten. Du sparst Dir sehr viel Zeit damit. Ich verwende es überall wo Performance keine extreme Rolle spielt...

Beste Grüsse

Diräkt

26.06.2014 - 07:55 Uhr

Hallo Paschulke

Ich schließe das Thema jetzt ab. Obwohl alles sehr konfus war, habe ich doch ein paar gute Ideen erhalten. Ich fürchte, dass ich Diräkt doch einmal gekränkt habe. Das war nicht meine Absicht. Sorry! Der Fehler lag wohl offensichtlich eindeutig an mir bzw. meiner schlechten Erklärung.

Du hast mich absolut nicht gekränkt 😃. Da ich das Problem immer noch nicht richtig verstanden habe, und (vielleicht deswegen) mein Lösungsansatz für richtig halte, habe ich mich zurückgehalten und für Dich gehofft, das jemand eine "Lösung" postet die du hören willst 😃

Beste Grüsse

Diräkt

24.06.2014 - 17:20 Uhr

Hallo Paschulke

Nein, sind sie nicht. Eine Person kann mehrere Adressen haben.

Jede Tabelle (also hier Person und Anschrift) hat eine 1:1 Beziehung zu einer "Vorgangstabelle"

Diese zwei Zitate wiedersprechen sich irgendwie ?!

Dann sind alles 1:N Verknüpfungen zur Personentabelle.
Je nach dem wie die einzelnen Tabellen aussehen könntest hier sicher einiges zusammenfassen durch Vererbung etc... (was mit EF ja auch funktioniert 😉)

Beste Grüsse

Diräkt

24.06.2014 - 13:18 Uhr

Hallo Paschulke

Vielleicht versteh ich deine "Vorgangstabelle" einfach nicht 😉

Wie wäre es mit:
=> Vorgangstabelle (M:N) -> Person

Vorgangstabelle
Id
Caption

Person
....

VorgangPerson
Id
VorgangId
PersionId

Beste Grüsse

Diräkt

24.06.2014 - 12:13 Uhr

Hallo Paschulke

- Jede Tabelle (also hier Person und Anschrift) hat eine 1:1 Beziehung zu einer "Vorgangstabelle"

... Ich habe eigentlich noch nie ein vernünftigen Grund gesehen, wesshalb man nicht gleich auf 1:1 Relations verzichtet und die Spalten direkt in die Tabelle packt ....

1. Wie löst man eine solche 1:1 Beziehung am Besten, wenn man möglichst auch die referentielle Integrität sicher stellen möchte. Geht das überhaupt? Oder kann man gar nicht gewährleisten, dass ein Vorgangsdatensatz irgendwann z. B. ohne zugehörigen Personendatensatz existiert?

Wenn alles 1:1 in der gleichen Tabelle ist, hast du das Problem gar nicht

Bei der refrentiellen Integrität kannst ja wählen (Update ; Delete weitergabe ... )

2. Wie würde das Mapping im Entity Framework aussehen?

Sowie du es in der DB abgebildet hast 😃 Du kriegst halt ein NavigationProperty zu Deiner "Stammtabelle".

3. Die Vorgangstabelle hat ja auch eine PersonId. Wenn ich eine Person anlege, bekomme ich spätestens hier Schwierigkeiten, weil ein Zirkelbezug existiert. Kann man so etwas auch irgendwie geschickter lösen? Notfalls müsste ich nachträglich ein Update auf das dann notwendigerweise "nullable" Feld PersonId machen...

Siehe mein erster Kommentar 😃

Beste Grüsse

Diräkt

29.04.2014 - 17:50 Uhr

Hallo Flacker

NormalDistribution normal = new NormalDistribution

ist das VB.NET ?

Der Fehler sagt ja alles 😃, du sollst die Datei oder Assembly hinzufügen welche AForge Version 2.2.5 beeinhaltet. ( Projekt-Referenzen prüfen).

Bezüglich Verteilungen habe ich mal was geschrieben, weil ich nichts gefunden habe..

Beste Grüsse

Diräkt

24.04.2014 - 21:05 Uhr

Hallo Abt

Danke für Deine Antwort.

Das ist nicht so einfach, oder ich weiss nicht wie.

Die Controls habe ich in Assemblies ausgelagert. Die entsprechenden css, JavaScript ... sind als embedded resource darin. Daher WebResources....

Wenn ich nun den "modernen" Weg gehen möchte, müsste ich also alle Controls direkt im Projekt pflegen, was ich aber nicht will (weil diese auch in anderen Projekten gebraucht werden). Oder wie löst man das ?

Beste Grüsse

Diräkt

24.04.2014 - 12:48 Uhr

Hallo Abt

Danke für Deine Antwort.

Das ist mir bewusst, doch wie krieg ich das mit WebResourceRequests hin ?
**
Hier eigentlich genau meine Frage:** ( ohne Antworten ... )

http://stackoverflow.com/questions/12335119/asp-net-4-bundles-and-webresource-axd

Beste Grüsse

Diräkt

24.04.2014 - 11:25 Uhr

Hallo

Am einfachsten den Fiddler nutzen, sich normal auf der Seite einloggen, Request ( Post) nachbauen.

Beste Grüsse

Diräkt

23.04.2014 - 21:20 Uhr

Hallo Leute 😃

Meine Controls etc habe ich in eine WebControl Assembly ausgelagert. Wenn ich nun Ressourcen davon lade ( Bilder ; Scripts ; Css ) wird ein Request an den Server abgesetzt, in folgendem Format:

http://localhost/WebApp/WebResource.axd?d=0_2pTgj6-GMQRypQ7VfMi7Gj5aMusv97biRH1tt4IPjtyKIiDPuuy1obNtSFHBQaVWss9gcJwXNxfWh7BB-mlYuran5QJa6cTeI9Ya7tCl6L2BGR0z_uwj5LwPUaGe6t-vOYXQ2&t=635338836971623974

Wenn ich nun 4-5 Ressourcen lade, werden logischerweise 4-5 Requests abgesetzt. Gibt es eine Möglichkeit (in Form eines Handlers bspw.) das diese direkt combined werden und somit nur 1 Request abgesetzt wird an den Server ?

(Für Bilder wird es wohl kaum gehen, wenn diese nicht als Sprite zur Verfügung stehen, aber für CSS und JS Files ? ( oder muss ich die im ScriptManager alle includen ?! ) )

Wie macht Ihr das ?

Beste Grüsse

Diräkt

24.03.2014 - 08:17 Uhr

Hallo Oehrle

Schau Dir doch das mal an :

Remove (Unregister) Lambda EventHandler

Beste Grüsse

Diräkt

03.03.2014 - 11:53 Uhr

Hallo DonStivino

Schüler - Klasse könnte auch M:N sein, bist du sicher das es nur 1:N ist ?
(Gerade heute werden Schüler doch oft in sogenannte "Leistungsklassen" eingeteilt, die dann pro Fach wieder völlig unterschiedlich sind...)

Beste Grüsse

Diräkt

28.02.2014 - 18:04 Uhr

Hallo Abt

Designer-Unterstützungen wie EDMX fliegen bald eh raus,

Du meinst damit auch den DB First Ansatz ? Darf ich fragen woher du diese Information hast ?

Beste Grüsse

Diräkt

01.11.2013 - 10:10 Uhr

@FZelle
Sicherheit gibts nicht. Nur weil ein "Debakel" bekannt wurde, heisst das nicht, dass es nicht schon jahrelange gängige Praxis ist/war/sein wird...

( Wenn mal ein Backup vergessen geht, kann man sich direkt bei der NSA melden, ich seh das als Dienstleistung 😃 )

18.10.2013 - 18:50 Uhr

Hallo M@TUK

... dabei dachte ich endlich mal "schnell" zu sein 😃

Connection Resiliency / Retry Logic (EF6 onwards)
Scheint ja eine ganz tolle Sache in Verbindung mit Azure zu sein! Wenn ich Model First nutze, kann ich das irgendwie im Constructor des Entity Contextes setzen, damit es gleich "global" die gewünschte Strategie genutzt wird ?

Jemand schon Erfahrung damit ? 😉

Beste Grüsse

Diräkt

18.10.2013 - 18:25 Uhr

Hallo Leute

Gerne würde ich alle informieren ( sollte es jemand noch nicht mitbekommen haben ), das heute der Release von EF 6 sowie den vom VS 2013 gefeiert werden kann !

Beste Grüsse

Diräkt

08.10.2013 - 14:48 Uhr

Hallo Abt

Wenn ich nun 5 (als Beispiel, da 5 Kontinente) Server á 80€ miete (weltweit, im Schnitt) habe ich hier auch fünf sehr leckere Maschinen, was die Leistung wie auch den Ausfall betrifft. Bei Azure würde ich laut Kalkulator einen geschätzten Preis von 763,17€ zahlen - also fast das doppelte bei weniger Leistung.

Dazu nochmals 2-3 Maschinen für die SQL Instanzen ? Wie soll hier das Loadbalancing sowie die "Synchronisierung" erfolgen ? ( oder sind die Web&Business AZURE Sql gar nicht redundant ? )

Beste Grüsse

Diräkt

08.10.2013 - 14:02 Uhr

Hallo Abt

Habe erst kürzlich begonnen Azure zu nutzen. Ein neues Projekt das gerade in der Beta Phase ist, ist die "Hochverfügbarkeit" ein wichtiges Thema. Wenn ich also mehrere Instanzen in einem "normalen" Rechenzentrum abbilden möchte, wird das schnell sehr teuer. Laut meinen recherchen kann da niemand mit AZURE mithalten.

Gibt es Einschränkungen, die erst bei der Entwicklung aufgetreten sind?

=> Das SQL Managementstudio funktioniert nur extrem eingeschränkt, das betrifft dann natürlich auch die SMO Assemblies, sollten diese verwendet worden sein ...

Wie seid ihr mit dem Service von Microsoft zufrieden, sofern ihr ihn bisher in Anspruch genommen habt?

Bisher bin ich sehr zufrieden damit. ( Persönliche Einladungen etc... )

Was hat euch bewogen, zu Azure zu gehen statt einen Root-Server zu mieten?

Mehrere Instanzen , Skalierung , Geo-Redunanz ...

@ Malignate

  1. Skalierung: Mann kann SQL-Server leider nicht hochskalieren. Oft waren bei hoher Last die DB ein Problem. Mann hätte vll. die DB zum Lesen duplizieren können, aber damit habe ich keine Erfahrung. Es war erschreckend wie schnell man SQL-Azure an die Grenzen bringt.

Ich hoffe das hat sich verbessert, den unsere Applikation "lebt" von der Datenbank, diese wird recht hohen Belastungen ausgesetzt.... Es gibt ja nun SQL Premium, das kann man aber kaum bezahlen....

Bei uns wird pro Kunde eine Datenbank erstellt, ich hoffe die gewünschte Skalierung bei Azure so zu erreichen ?! 😃

Beste Grüsse

Diräkt

17.09.2013 - 21:18 Uhr

Hallo gfoidl

Danke für Deine Antwort.

Wenn man den Assembly Namen weiss, ist es warsch "besser" nicht suchen zu lassen...
( Ich habs so gelöst, das ich bei der BuildEntityFrameworkConnectionString Methode nun assemblyName als optionalen Parameter eingeführt, so hat man beides 😉 )

Habe nun den MSDN Artikel gefunden welcher ABT erwähnt hat. Scheint als hätte ich diesen Teil immer überflogen 😃

Zitat von: Connection Strings
The full name of an assembly with the embedded resource. The name includes the simple name, version name, supported culture, and public key, as follows:

ResourceLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Resources can be embedded in any assembly that is accessible by the application.

If you specify a wildcard (*) for assemblyFullName, the Entity Framework runtime will search for resources in the following locations, in this order:1.The calling assembly. 1.The referenced assemblies. 1.The assemblies in the bin directory of an application.

If the files are not in one of these locations, an exception will be thrown.

  
> Note:  
> When you use wildcard (*), the Entity Framework has to look through all the assemblies for resources with the correct name. To improve performance, specify the assembly name instead of the wildcard.  
> 

Beste Grüsse und Dank

Diräkt

17.09.2013 - 21:10 Uhr

Danke Abt ! Perfekt ! Hätte mir einige Stunden ersparen können 😃
(...und ist natürlich "besser" als den Namen per Methoden-parameter zu verlangen...)
Beste Grüsse

Diräkt

17.09.2013 - 16:23 Uhr

Hallo MATSE01

Gute Idee, werde ich in Erwägung ziehen 😃

Hallo Abt

Danke für Deine Antwort. Werde ich morgen testen 😃 Hab mich heute mit : EF CreateDatabaseScript Multiple Context IIS herumgeschlagen, und keine Lust mehr auf MS Technologien für heute 😃

Beste Grüsse

Diräkt

17.09.2013 - 16:20 Uhr

Lösung:

=> Das .edmx File hiess überall Model.edmx (im jeweiligen Namespace ...)

Der Connectionstring ( nicht im Config angegeben, sondern per RunTime zusammengesetzt), sah etwa so aus :

"metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;.......... 

Nun heisst jedes Model etwas anderst (AdminModel, DingsBumsModel, IchMagDichMicrosoftModel) usw... Nun kanns auch der IIS ....

...

Beste Grüsse

Diräkt

17.09.2013 - 13:41 Uhr

verwendetes Datenbanksystem: <SQL 2012, EF>

Hallo Leute

Ich steh vor einem unerklärlichem Problem, hoffe es kann mir jemand erklären (ich schliesse eher auf MS Bug ?!)...

Hinweis
Es handelt sich um ein WebService, dieses hat 3 EF Contexts (assemblys) als Referenz...

Code


 using (var db = new TenantEntities.TenantModelEntities(connectionstringExistingTenantDb))
            {
                var dbScript = db.GetDataBaseScript();  <================ !!!!
                dbController.CreateDatabase(TestDbName);
                dbController.ExecuteScript(dbScript, TestDbName);
            }

**
Hoste ich den Service im IIS:**

==> Anstatt nur von dem gewünschten Context, wird ein DB Script für alle referenzierten Context's erstellt. Sprich es wird eine DB erstellt welche die Tabellen ALLER EntityModels besitzt, welche im Projekt referenziert sind ?!! (WTF !)

**
Hoste ich den Service als Console:**

==> Alles korrekt, sprich es werden nur die Tabellen in der DB erstellt, welche das entsprechende Model auch hat ...

Kann mir das jemand erklären ?! Kann man das überhaupt erklären ?!

Beste Grüsse

Diräkt

10.09.2013 - 14:03 Uhr

verwendetes Datenbanksystem: SQL2012 / SQL Azure

Hallo Leute

Situation
Einige Tabellen sind mit Default-Werten belegt. Diese haben ein PK - Auto-Increment welcher bei 0 startet. ( leider ist es zwingend das der Erste-Datensatz bei 0 beginnt ... )

Szenario
Ich erstelle ein EF-DB Context und möchte eine neu DB erstellen. ( Zeilen sagen mehr als 1000 Worte 😉) :


using (var db = new EntityFrameworkContext(connectionString))
            {
                var dbScript = db.ObjectContext().CreateDatabaseScript();

                dbController.CreateDatabase(TestDbName);
                dbController.ExecuteScript(dbScript, TestDbName);
            }

Dies funktioniert auch wunderbar, nur :
=> Der Auto-Incerement PK startet immer bei 1, sprich die DB Einstellung wird nicht beachtet ?!

(Siehe Screenshot)

Bisher
... hab ich das so gelöst :

DBCC CHECKIDENT('TableName',RESEED,0)

Dies ist jedoch nicht möglich mit SQL Azure 😦

Hat mir jemand ein Tipp oder Idee ?

Beste Grüsse

Diräkt

Edit :

Ef generiert folgendes :

create table [dbo].[Culture] (
    [CultureId] [int] not null identity,
    [CultureName] [nvarchar](128) not null,
    [Description] [nvarchar](128) not null,
    [HtmlRemarks] [nvarchar](max) null,
    [LastModified] [datetime2](4) not null,
    [LastModifiedUserId] [int] not null,
    primary key ([CultureId])
);

Edit 2:

Ich könnte es natürlich so lösen:

var dbScript = db.ObjectContext().CreateDatabaseScript().Replace("[int] not null identity,","[int] IDENTITY(0,1) NOT NULL,");

aber das ist erstens irgendwie sehr gammlig und zweitens starten dann alle Tables bei 0..., hoffe es gibt bessere Vorschläge 😃

04.09.2013 - 19:13 Uhr

Hallo Herbivore

DANKE ! Dafür werde ich in Zukunft (versuchen) treffendere Titel zu wählen 😃

Beste Grüsse und vielen Dank

Diräkt

04.09.2013 - 15:09 Uhr

Hallo Leute

Ich versuche ein REGEX Ausdruck zu basteln der folgende Bedingungen erfüllen muss :

1 gross Buchstabe
1 Zahl
1 klein Buchstabe
keine Spezial Characters
8 Zeichen

Die Reihenfolge usw. ist alles egal. Die genannten Bedingungen gelten als "Mindest-Voraussetzung".

Bisher hab ich :

(?:(?((?:([A-Z]|[0-9]|[a-z])){8})[A-Z]+)(?:([A-Z]|[0-9]|[a-z])){8})

Was aber noch nicht wirklich passt.

Ist Regex dafür das geeignete Mittel (bin damit nicht so wirklich vertraut ..) ?
Eine bessere Idee ?

Beste Grüsse und besten Dank

Diräkt

03.09.2013 - 20:53 Uhr

Hallo Abt

Danke für die Antwort und Ehrlichkeit.

Ich habe in 2-3 Wochen ein Termin bei MS, werde die Frage mitnehmen und die Antwort hier posten.

Beste Grüsse

Diräkt

03.09.2013 - 17:52 Uhr

Hallo Abt

Danke für Deine Antwort.

Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache.

Habe ich gerade getestet, ganz billig ist es ja nicht, scheint aber echt eine coole Sache zu sein.

Eine Frage diesbezüglich habe ich noch :

=> Das ganze macht ja nur im "WebFarm"-Betrieb Sinn (sonst könnte man ja inproc Session verwenden 😉). Warum ist der SHARED CACHE von AZURE nicht Hoch verfügbar ? Nehmen wir also an, die Disk geht kapputt (oder was auch immer), jetzt kann keiner mehr die Anwendung nutzen, alle Server stehen zur Dekoration da ? Oder wird dann sofort eine neue Disk erstellt ? Wie muss ich das verstehen ?

AZURE Cache availability

High availability is not supported for Shared Caching.

Beste Grüsse

Diräkt

Edit:

SQL Server ist quatsch

=> Das meiste Cache ich ja um nicht immer den SQL zu kontaktieren 😃

Zudem mag ich die ASP-Provider in diesem Fall sowieso nicht (weder Membership, noch ProfileProvider...).

=> Danke ! Ich hass die Dinger auch... 😃

02.09.2013 - 18:48 Uhr

Hallo fr3sh

Was hindert dich daran beides zur Verfügung zu stellen, dann hat der Consumer die Qual der Wahl 😉
( GetKundenMitBestellungen() , macht natürlich nur Sinn, wenn man für jeden Kunden alle Bestellungen darstellen will)...

Ich persönlich finde das viel besser:

GetKunden()
GetBestellungen(int kundeId)

Dies weil ich überzeugt davon bin, das keiner alle Kunden mit Bestellungen lesen kann (zuviele Daten), dann lieber z.B. den Kunden aufklappbar machen und beim "klapp" event dessen Bestellungen nachladen...

Beste Grüsse

Diräkt

02.09.2013 - 17:37 Uhr

Hallo fr3sh

Das klingt nicht nach einer wirklich guten Idee. Wenn jemand deine Service Methode aufruft, sollte kalr sein was zurückkommt.

Wie mabo gesagt hat, solltest du DTO's verwenden ( Data Transfer Object ), in welche du die "Entities" so Projezierst wie du sie übermitteln willst.

Wenn du sehr viele Objekte hast, kannst auch Take und Skip als Parameter einführen, damit du auf der Client Seite dann Paging implementieren kannst.

Beste Grüsse

Diräkt

02.09.2013 - 16:32 Uhr

Hallo fr3sh

Lazy Loading über WebService macht keinen Sinn, der Context ist ja geschlossen wenn die WCF Methode abgearbeitet wurde. Der Context steht somit nicht mehr zur Verfügung und kann keine weiteren Abfragen mehr erledigen.

Entweder du erstellt eine Methode:

GetKundenMitBestellungen()

oder

GetKunden()
GetBestellungen(int kundeId)

Das gleich gilt fürs EF.

Beste Grüsse

Diräkt

31.08.2013 - 15:01 Uhr

Hallo Leute 😃

Meine WebApplikation enthält ein paar Session Objekte (welche alle Serialisierbar sind). Es handelt sich dabei um "UserId" und ein paar weitere Dinge fürs Caching, damit nicht immer ein RoudTrip zur Db notwendig ist...

Nun sind Sessions natürlich nicht "unterstützt" in WebFarm Szenarien weil man ja nicht weiss welcher Server den Request beantworten wird (und die Session (per Default) in den Ram des Servers gespeichert wird...)

Möglichkeiten: ( Target : Windows Azure IaaS (Infrastructure as a Service) )

=> SQL Server für Sessions benutzen

Ehrlich gesagt halte ich dies für ein rechten overhead, da extrem viele zusätzliche Requests an die DB gehen werden... Desweitern leidet die Performance. ( Das Ziel vom Cachen ist ja die Performance zu steigern, somit den Flaschenhals etwas zu "verbessern" ). Bei mir ist SQL der Flaschenhals, also ist das meiner Meinung nach sinnlos ?!

=> Windows Service

Auch dies halte ich für etwas fragwürdig. Mag etwas perfomanter als SQL sein, da die Daten im Memory gehalten werden anstatt im FileSystem, aber ist mir irgendwie etwas suspekt.

=> AppFabric Caching

(Nur darüber gelesen...) Scheint etwas änhliches wie der Windows Service zu sein, wird von AZURE aber nicht offiziell unterstützt ?!

=> Windows Azure Caching

Scheint auch etwas ähnliches wie der Windwos Service zu sein, nur offiziell unterstützt aber relativ teuer...

=> Cookies

Ich hab mir überlegt einfach alle Informationen verschlüsselt in Cookies abzulegen. Sollte das "LoginCookie" nicht verfügbar sein, gehts wieder zum Login ( ähnlich wie bei der Session )
--> Was spricht dagegen ?

Hat jemand Erfahrung damit, ein paar Tipps ?

Beste Dank !

Diräkt

29.08.2013 - 08:21 Uhr

Hallo Eroli

Ich glaube du suchst :


Interlocked.Increment(ref m_ReceivedCount);

Siehe Interlocked.Increment Method (MSDN)

Beste Grüsse

Diräkt

27.08.2013 - 17:33 Uhr

Hallo Marco_Gr

Jedoch können auch bei Deiner Lösung nicht unendlich viele Elemente dazwischen eingefügt werden oder doch?

Ja das stimmt, unendlich mal ist es nicht möglich, alle Positionen zu verändern... Die Limite liegt beim Float. Ich denke aber kaum das die Items so oft sortiert werden 😃

Beste Grüsse

Diräkt

27.08.2013 - 10:35 Uhr

Hallo Marco_GR

Die Lösung ist zwar auch nicht sehr schön, aber genau weil ich auch der Meinung bin wenn DatenSatz A geändert wird sollen B,C,D,E,F nicht auch geändert werden müssen, habe ich es mal so gelöst:

SortIndex = Double

A 1
B 2
C 3
D 4

Wird nun C zwischen A und B verschoben würde sich folgendes ergeben :

A = 1
C= 1.5
B= 2
D = 4

Alle anderen Datensätze bleiben also unangetastet.

**Regeln 😗*

Normal
=> SortIndex =( (CurrentRow-1).Index + (CurrentRow+1).Index ) / 2

Dabei gibts dann natürlich 2 Spezialfälle:

  1. am Ende einfügen
  2. am Anfang einfügen
    welche speziell behandelt werden müssen...

Beste Grüsse

Diräkt

25.08.2013 - 13:42 Uhr

Hallo pinvoke

dann unterbreche ich die kompilierung, starte sie nochmals neu, und wenn ich dann den gleichen datensatz nochmal hinzufüge dann wird er ausgelesen.

Hört sich so an, als würdest du die DB jedes mal überschreiben wenn du kompilierst. Ist die DB im VS Projekt ? Wenn ja prüf da mal was bei Build Action steht...

Beste Grüsse

Diräkt

22.08.2013 - 18:27 Uhr

Hallo DJ-Mirscho

Diese Informationen müssten eigentlich reichen. Bitte verlange keine Lösung sondern melde Dich wieder wenn du ein konkretes Problem hast.

Da du kein konkretes Problem hast, kann ich Dir leider nicht helfen...

=> Was hast du versucht ?
=> Warum klappt das nicht ?
=> Fehlermeldung ? .....

Beste Grüsse

Diräkt

22.08.2013 - 13:08 Uhr

Hallo DJ-Mirscho

**Deine Aufgabe 😗*
Authentifizierzung am WebServer über BASIC AUTH

Lösung:
POST absetzen, mit dem entsprechenden Header

Basic Auth Wikipedia

Wie du hier im Beispiel siehst, muss im Header folgendes übermittelt werden :
Authorization: Basic d2lraTpwZWRpYQ==

Wobei "d2lraTpwZWRpYQ==" Base64-Codierung von wiki:pedia ist und steht damit für Benutzername wiki, Passwort pedia.** Das steht aber alles da...**

Wie in meinem ersten Beitrag verlinkt, der extended WebClient von dN!3L, zeigt Dir auch wie man die Respone auswerten kann. Kannst Dir ja mal da die Methode "ReadWebResponse" anschauen.

Diese Informationen müssten eigentlich reichen. Bitte verlange keine Lösung sondern melde Dich wieder wenn du ein konkretes Problem hast.

Beste Grüsse

Diräkt

22.08.2013 - 12:12 Uhr

Hallo DJ-Mirscho

Wäre es den dann so richtig?

Der Code aufjedenfall kommt mir bekannt vor 😉

Etwas mehr Eigeninitiative wäre super !!
( Dazu gehört auch zu verstehen was der Code eigentlich macht ... )

=> Dann würdest du merken, das du ggf. im response mal nachschauen könntest, was dann da zurück kommt.

Beste Grüsse

Diräkt

22.08.2013 - 11:29 Uhr

Hallo DJ-Mirscho

etwa so:


 var req = System.Net.HttpWebRequest.Create(Url) as HttpWebRequest;
        req.Method = "POST";
        req.ContentType = "application/json";
        req.Date = RequestTime;
        req.Proxy = null;
        string credentials = String.Format("{0}:{1}", "xxxx", "xxxx");
        byte[] bytes = Encoding.ASCII.GetBytes(credentials);
        string base64 = Convert.ToBase64String(bytes);
        string authorization = String.Concat("Basic ", base64);
        req.Headers.Add("Authorization", authorization);
        HttpWebResponse response = (HttpWebResponse)req.GetResponse();

Beste Grüsse

Diräkt

22.08.2013 - 11:02 Uhr

Hallo DJ-Mirscho

WebClient mit HTTP-POST- und Cookie-Unterstützung

Beste Grüsse

Diräkt

17.08.2013 - 13:51 Uhr

Hallo sunshineh

"Die Variable "ex" ist deklariert, wird aber nie verwendet."
Im Code finde ich die Verwendung wie folgt:

Ein Fehler Abfangen, dann aber nicht behandeln ist zwar sehr schlechte Praxis, aber führt nicht zu Deinem gennanten Problem.

Dein Problem ist folgendes : Eine Variable wurde zwar deklariert aber sie hat den Wert NULL du versuchst nun diese Variable zu benutzen (oder ein Property davon) ... Das bedeutet Null-Referenz Exception.

Wie mach ich das, dass ich die Kommunikation zwischen diesen beiden Anwendungen Schritt für Schritt nachvollziehen kann??

Das nennt sich Debugging. Einfach ein Breakpoint setzen und du kannst alle Variablen etc. inspitzieren und Schritt für Schritt durch Deine Anwendung debuggen.

Debugging Tutorial

Das sind aber wirklich absolute Grundlagen, welche Du die besser selbst aneignest. In diesem Forum sind solche Fragen nicht gerne gesehen 😉

Beste Grüsse und viel Erfolg

Diräkt

17.08.2013 - 12:16 Uhr

Hallo sunshineh

Herzlich Willkommen auf mycsharp.

Leider muss ich Dich gleich auf folgendes Hinweisen :

Wie poste ich richtig ?
( Schau Dir mal Punkt 5 an )

Schalte den Debugger ein ... oder stelle bitte eine konkrete Frage ?
(Was für eine Antwort würdest du dann Erwarten ? )

Beste Grüsse

Diräkt

16.08.2013 - 15:11 Uhr

Hallo dN!3L

YOU MADE MY DAY !!!!!!!

Wenn du mal in der Schweiz bist, komm auf ein Bier vorbei !!! ( oder auch gern ein Fass ) 😃

Beste Grüsse

Diräkt

16.08.2013 - 14:41 Uhr

Hallo dN!3L

Danke auch für Deine Antwort.

Entschuldigt das ich mit den Informationen erst häppchen weise herausrücke ...
(wenn Ihr Euch schon mit meinen Problemen beschäftigt ...)

Kannst du noch einmal ein paar Worte dazu verlieren, warum du da ein FirstOrDefault verwendest?

FirstOrDefault verwende ich, weil in einem Iqueryable man nicht First() verwenden darf 😉

Deine Lösung ist super! Eigentlich würde das funktionieren, nur :
(jetzt kommen wir zu den fehlenden Infos 😃)

 
.OrderBy(x => x.StartDateTime)
.GroupBy(g => g.Id)

**
Warum das ordering ?**
Ich hab da noch 2 Dinge drin die ich brauch neben den Einheiten :


 StartDateTime = s.First().StartDateTime,
 EndDateTime = s.OrderByDescending(r => r.EndDateTime).FirstOrDefault().EndDateTime,

Zusammenfassung des Ziels:
=> Sum über Mengen
=> Dazu die Einheit ausgeben
=> Dazu das früheste Start und das späteste End-Datum

Ich hab versucht :
=> SubQuery dann einheiten zusammentragen
==> Nur untersützt Linq2Entities das ja nicht (grml): ( Only primitive types or enumeration types are supported ) ( Referencing Non-Scalar Variables Not Supported )

Nun versuch ich : (gfoidl's tipp)
nach dem GroupBy materialisieren und den Rest der Query am Client ausführen
sowas wie:

.GroupBy(g => g.Id)
.OrderBy(x => x.FirstOrDefault().StartDateTime)
.Where(where)
.Skip(skip)
.Take(take)
.ToList()

Beste Grüsse und besten Dank

Diräkt

16.08.2013 - 12:40 Uhr

Hallo Abt

Hier also was genau gemacht werden soll:

var query = db.Data.Where(....).OrderBy(...),GroupBy(g=>g.Id).Select(s=>new MyItem
{
    Name = s.FirstOrDefault().Menge1Einheit,                  //Bläht extrem auf
    Name2 = s.FirstOrDefault().Menge2Einheit,               //Bläht extrem auf
    Name3 =  s.FirstOrDefault().Menge3Einheit,              //Bläht extrem auf
    Menge1 = s.Sum(x=>x.Menge1),
    Menge2 = s.Sum(x=>x.Menge2),
    Menge3 = s.Sum(x=>x.Menge3),
});

Und ganz ehrlich: das macht eh keinen Sinn. Wenns Default sein sollte kriegste ne Exception um die Ohren geworfen.

Es ist garantiert vorhanden, leider kann ich First() nicht benutzen, weil dann krieg ich:

Fehlermeldung:
NotSupportedException
The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead

Beste Grüsse

Diräkt

Edit:

Die QuellDaten sehen etwa so aus

Menge 1 Menge 2 Menge 3 Einheit 1 Einheit 2 Einheit 3
11 22 33 A B C
22 11 44 B C D

16.08.2013 - 10:34 Uhr

Hallo gfoidl

Nochmals Danke 😃

Das habe ich auch in Betracht gezogen als Notlösung, denn dann verlier ich die Compiler-Prüfung....

Ich kann das also nicht besser schreiben ?


var query = db.Data.Where(....).OrderBy(...),GroupBy(g=>g.Id).Select(s=>new MyItem
{
    Name = s.FirstOrDefault().Name,                  //Bläht extrem auf
    Name2 = s.FirstOrDefault().Name2,               //Bläht extrem auf
    Name3 =  s.FirstOrDefault().Name3,              //Bläht extrem auf
    Name4 = s.FirstOrDefault().Name4,               //Bläht extrem auf
    A = s.Sum(x=>x.P1),
    B = s.Sum(x=>x.P2),
    C = s.Sum(x=>x.P3),
    D = s.Sum(x=>x.P4),
    E = s.Sum(x=>x.P5),
    F = s.Sum(x=>x.P6),
    G = s.Sum(x=>x.P7),
    H = s.Sum(x=>x.P8),
    I = s.Sum(x=>x.P9),
    J = s.Sum(x=>x.P10),
    K = s.Sum(x=>x.P11)
});

Beste Grüsse und besten Dank

Diräkt

16.08.2013 - 10:24 Uhr

Hallo gfoidl

Danke für Deine Antwort.

nach dem GroupBy materialisieren und den Rest der Query am Client ausführen

Die Tabelle enthält etwa 5 Mio Records, daher kann ich schlecht materialisieren, die Methode hat noch folgende Parameter (where,orderby), das Resultat der Methode wird später noch "editiert" mit Skip, Take...

eine SProc od. TVF auf dem Server der schon das passende Ergebnis zurückgibt (aber auch dort kommst du wohl nicht ohne Unterabfragen aus)

Eigentlich wollte ich das vermeiden. Gibts ggf. noch ein anderer Weg über Linq2Entities, dies einigermassen sauber lösen zu können ?

Beste Grüsse

Diräkt

Edit :
Info korrektur

16.08.2013 - 10:03 Uhr

verwendetes Datenbanksystem: SQL 2012, EF 5, Linq2Entities

Guten Tag 😃

Info
Es soll ein Iqueryable<T> erstellt werden, der später materialisiert wird...

Ich habe eine Abfrage die etwa so aussieht :


var query = db.Data.Where(....).OrderBy(...),GroupBy(g=>g.Id).Select(s=>new MyItem
{

    A = s.Sum(x=>x.P1),
    B = s.Sum(x=>x.P2),
    C = s.Sum(x=>x.P3),
    D = s.Sum(x=>x.P4),
    E = s.Sum(x=>x.P5),
    F = s.Sum(x=>x.P6),
    G = s.Sum(x=>x.P7),
    H = s.Sum(x=>x.P8),
    I = s.Sum(x=>x.P9),
    J = s.Sum(x=>x.P10),
    K = s.Sum(x=>x.P11)
});

Das generierte Sql Statement dafür ist ok und sauber... ( wie erwartet 😉 )

Nun sollten aber noch Informationen rein, also müsste das Statement etwa so aussehen:


var query = db.Data.Where(....).OrderBy(...),GroupBy(g=>g.Id).Select(s=>new MyItem
{
    Name = s.FirstOrDefault().Name,
    Name2 = s.FirstOrDefault().Name2,
    Name3 =  s.FirstOrDefault().Name3,
    Name4 = s.FirstOrDefault().Name4,
    A = s.Sum(x=>x.P1),
    B = s.Sum(x=>x.P2),
    C = s.Sum(x=>x.P3),
    D = s.Sum(x=>x.P4),
    E = s.Sum(x=>x.P5),
    F = s.Sum(x=>x.P6),
    G = s.Sum(x=>x.P7),
    H = s.Sum(x=>x.P8),
    I = s.Sum(x=>x.P9),
    J = s.Sum(x=>x.P10),
    K = s.Sum(x=>x.P11)
});

Das bläht das SQL Statement aber extremst auf, sodass auch gerne mal was wie :
"Ein Teil der SQL-Anweisung ist zu tief geschachtelt. Schreiben Sie die Abfrage neu, oder teilen Sie sie in kleinere Abfragen auf." ausgespuckt wird 😃

Frage:

Ich glaube es lässt sich nicht bewerkstelligen (Aggregieren + Selecten) und dabei ein vernünftiges SQL Statement zu kriegen (lasse mich gerne eines bessseren belehren).
Somit geh ich davon aus, das ganze (wie die Fehlermeldung sagt) zu unterteilen.

Hat mir jemand ein Tipp wie ich das am besten tun sollte ?

Herzlichen Dank

Diräkt