verwendetes Datenbanksystem: SQL Server 2005
Guten Morgen zusammen
Ich habe folgendes Problem: Ich lese eine XML-Datei, die bestimmte Konfigurationen für einen Workflow beeinhaltet. Diese müssen als Unicode in die Datenbank geschrieben werden. Die Tabelle in der DB sieht wie folgt aus (ich hab gelesen dass das Feld das Unicode beinhalten soll, als NVARCHAR deklariert sein soll).
T_Id = bigint / Allow Nulls = false
ConfigurationType = nvarchar(100) / Allow Nulls = false
ConfigurationXml = nvarchar(MAX) / Allow Nulls = true
Nun das Model des EF weist genau die gleichen Eigenschaften auf, nur wenn ich dann die Entität aktualisiere
ObjectQuery<WizardConfiguration> q = model.WizardConfiguration;
IQueryable<WizardConfiguration> ql = q.Select(p => p);
if(ql.Count<WizardConfiguration>() > 0) {
WizardConfiguration wzToUpdate = ql.ToList<WizardConfiguration>()[index];
wzToUpdate.ConfigurationXml = content;
wzToUpdate.T_CreateDate = DateTime.Now;
wzToUpdate.T_LastChange = DateTime.Now;
wzToUpdate.T_User = WindowsIdentity.GetCurrent().Name;
wzToUpdate.T_Version = wzToUpdate.T_Version++;
} else {
throw new NotImplementedException("Table has no content");
}
model.SaveChanges();
wird die ConfigurationXML zwar geschrieben, aber leider nicht als Unicode und dass hat auf die Configuration des Wizards nicht gewollte Auswirkungen.
Ich hoffe ihr könnte mir weiterhelfen und danke euch bereits fürs Feedback.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Eine kleine aber nicht performante Lösung habe ich gefunden, wäre auf Verbesserungsvorschläge trotzdem dankbar.
private void writeXmlToDataBase(char[] content, int index) {
WizardConfigurationDataContext context = new WizardConfigurationDataContext(Settings.Default.Buraut_AisConnectionString);
IList<WizardConfiguration> wzconfigEntry = (from entry in context.WizardConfigurations select entry).ToList<WizardConfiguration>();
WizardConfiguration wizardconfigurationsToUpdate = wzconfigEntry[index];
for(int i = 0; i < content.Length; i++) {
wizardconfigurationsToUpdate.ConfigurationXml += content[i];
}
wizardconfigurationsToUpdate.T_LastChange = DateTime.Now;
context.SubmitChanges();
}
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Lösung gefunden, es lag nicht am Encoding, sondern am falschen schreiben (AHHHHHHHHHHHHHHHH)
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Code schreiben? oder am XML zurückschreiben? Ich nehme an letzteres. 😉
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.