Laden...

[erledigt] Entity Framework und Leerzeichen

Erstellt von m.grauber vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.929 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren
[erledigt] Entity Framework und Leerzeichen

verwendetes Datenbanksystem: <SQL-Server 2000-2008R2>

Hallo,

per Entity Framework lese ich meine Daten vom SQL-Server und stelle sie dann in einer WPF-Textbox dar.

Handelt es sich um Textfelder, werden die nachfolgenden und unnötigen Leerzeichen vom Sql-Server an meine Klasse und dann an die Textbox übertragen und beim Eintippen weiterer Zeichen in die WPF-Textbox blockiert die Box die Eingabe, da alles mit nachfolgenden Leerzeichen aufgefüllt ist. 😜

Kann man im Entity Framework eine Einstellung machen, dass alle aus der Datenbank gelesenen Texte (außen) getrimmt werden? (z. B. TrimTextOnRead=true) (Ich möchte in meinen Linq-Abfragen nicht alle Felder einzeln abfragen und dann einzeln alle Textfelder mit Trim() modifizieren.)

Eine Änderung des getter/setter der Klasse kommt nicht in Frage, da es sich um die vom Framework definierten Klassen handelt.

Durch die Einstellmöglichkeit im Framework sollen a) nicht so viele unnötigen Daten übertragen werden und b) meine Textbox ohne Probleme funktionieren. Ein Abfagen der Leerzeichen in der Textbox wäre nur die zweitbeste Lösung.

Danke!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

W
955 Beiträge seit 2010
vor 13 Jahren

Hi,

Kannst Du den Datentyp nchar in nvarchar in Deiner DB ändern?

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo witte,

Danke für Deine schnelle Hilfe! 👍

Nein, leider nicht änderbar, da diese SQL-Tabellen nicht von mir stammen und nicht "angefasst" werden dürfen. 🙁

Evtl. gibts ja eine Einstellung wie "TrimTextOnRead=true" im EF.

Danke!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

F
10.010 Beiträge seit 2004
vor 13 Jahren

Nein.

Nochmal, bevor du etwas falsch verstehst.
z.B. NChar(20) bedeutet das das Feld eine Feste Länge von 20 Chars hat.
Fehlt hinten etwas wird es mit " " aufgefüllt, das ist so gewollt bei dem Datentyp.

Wenn der DatenTyp NChar ist aber dieses Verhalten nicht so beabsichtigt war, hat der Ersteller diesen Bockmist verzapft, und du musst ihn jetzt ausbaden, und gerade weil es für NChar so gedacht ist, musst du das selber machen.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo FZelle,

vielen Dank! 👍

Die Datenbank ist bereits älter (obwohl es nvarchar(x) bereits ab 2000er SQL-Server gab), stammt nicht von mir und es soll vorerst nur eine neue Oberfläche entwickelt werden. Derzeit darf ich die Felddefinitionen leider nicht anfassen.

Aber dann weiß ich jetzt, dass es keine derartige Einstellung gibt und werde wohl oder übel die String-Felder immer einzeln mit Trim() auslesen.

Danke nochmals und Grüße!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

X
1.177 Beiträge seit 2006
vor 13 Jahren

huhu,

Noch so als Anhang: Kannst du die Tabellen nicht zusätzlich als Views definieren und aus allen nchars einfach nvarchars machen? ala:

CREATE VIEW V_MyTable as
select cast(Feld1 as nvarchar(50)), cast(Feld2 as nvarchar(20)) from T_MyTable

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Xynratron,

auch Dir danke für den Tipp! 👍

Wenn ich in der Datenbank Änderungen machen dürfte, wäre das für mich auch noch ein interessanter Weg! - Optional könnte ich auch unter C# mit Views arbeiten, jedoch möchte ich lieber beim Entity Framework bleiben.

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]