Autor Beitrag
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Sa 29.09.12 18:21 
Moin

Ich wollte mir für eine Datenbank mit dem sqlMetal.exe-Tool von Microsoft eine dbml-Datei erstellen lassen.
Das habe ich auch schon öffter gemacht und es funktionierte immer wunderbar, nur seit ich Visual Studio 2012 habe, funktioniert das nicht mehr.
Zuerst hatte ich SQLMetal.exe für das .NET Framework version 3.5, was mich sowieso schon gewundert hat und was auch den Fehler erklären könnte. Also hab ich gesucht und mir die Version für 4.0 besorgt und den gleichen Befehl erneut ausgefüht.
Allerdings habe ich auch wieder den gleichen Fehler erhalten, nur dass dieses mal dort stand, dass das Tool für .NET Framework version 4.0 ist und nicht für 3.5

Die Datenbank beinhaltet eigentlich fast gar nichts, da die nur zum Test ist, damit ich mich an die Syntax von LINQ to SQL gewöhnen kann. Zuerst hatte ich drei kleine Tabellen drin, die mit einer einfachen 1:n-Beziehung verknüpft waren und jetzt ist es eine Datenbank, wo nur eine Tabelle mit nur einem Attribut, dem Primärschlüssel, drin ist. Das sollte eigentlich keine Fehler beinhalten.

Die Datenbank hab ich mit SQL Server Compact 4.0 erstellt und laut dieser Seite reicht das aus.

Kann mir jemand helfen, die Ursache zu finden, dass ich dann endlich das Tool wieder so nutzen kann, wie bisher?


Das ist der Befehl, den ich eingegeben habe:

ausblenden Quelltext
1:
sqlmetal.exe /dbml:[DatenbankName].dbml [DatenbankName].sdf					


Und diesen Fehler habe ich erhalten:

ausblenden Quelltext
1:
2:
3:
4:
5:
Microsoft (R) Database Mapping Generator 2008 version 4.0.30319.17929
for Microsoft (R) .NET Framework version 4.0
Copyright (C) Microsoft Corporation. All rights reserved.

Error : Incompatible Database Version. If this was a compatible file, run repair. For other cases refer to documentation. [ Db version = 4000000,Requested version = 3505053,File name = \\?\C:\Users\[UserName]\Documents\Visual Studio 2012\Projects\[ProjektName]\[DatenbankName].sdf ]
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 29.09.12 21:41 
Hallo Palladin700,

SqlMetal hat kein Problem mit der .NET-Version, sondern mit der SQL CE Version, d.h. LinqToSQL wird von SQL CE 4.0 nicht unterstützt (steht z.B. bei den Kommentaren von VS 2010 SP1 and SQL CE ).

Lies dir daher mal Using LINQ to SQL with SQL Server Compact 4.0 (yes, you can!), wie man es doch von Hand schafft:
also das Datenbank-Schema für SQL CE 3.5 erstellen und daraus dann die DBML-Datei erzeugen und diese dann gegen die SQL CE 4.0 verwenden.

Für diesen Beitrag haben gedankt: Palladin007