pa2.Testat/dbTestat/README.md
2020-09-16 20:22:39 +02:00

3.2 KiB

Projektaufgabe 6. Semester

[toc]

Abgabetermine

Projektaufgabe Abgabe
EntityFramework 02.08.2020 23:55
Hierarchiesche Structur der Location (CTE) 15.08.2020 23:55

Migration MySQL zu MS SQL

Migrierung von MySQL zu Microsoft SQL Server wurde mit dem MSSA Tool erstelt. SQL Server 2017 wurde als Technologie gewählt.

Step by Step HowTo ist hier detailliert dokumentiert: SQLShark

GIT

Unterordner des PA-Testat

EntityFramework

Funktionalitäten mit Repository und EF für:

Button Beschreibugn
Load data Ladet alle Customer aus der SQL Datenbank
Add Fügt ein Customer in der Db hinzu
Delete Löscht ein Customer

Mittels EF und LINQ Radiobutton kann man die Variante des BD-Interaktionsmethode auswählen.

How To

SQL-String kann man ignorieren da es nur für den ADO.NET-teil Relevant ist.

  1. SQL-String ist in der App.config zu finden.

  2. Danach die SQL.bak detei mittel SQL-Studio einlesen.

  3. Applikation ausführen

Hierarchiesche Structur der Location (CTE)

CTE Script:

	;WITH cte_location AS (
		SELECT
			location_id, parentid, 0 AS locationLevel, loc.designation AS LocationDesignation,
			pod.designation AS POD_Designation,
			adr.streetname, 
			adr.streetnumber, 
			tow.zip, 
			tow.town
		FROM
			[inventarisierungsloesung].Location AS loc
		INNER JOIN [inventarisierungsloesung].pointofdelivery pod ON pod.location_fk = loc.location_id
		INNER JOIN [inventarisierungsloesung].address adr ON loc.address_fk = adr.address_id
		INNER JOIN [inventarisierungsloesung].town tow ON adr.town_fk = tow.town_id
		WHERE parentid IS NULL	
	UNION ALL
	SELECT loc.location_id ,
		loc.parentid ,
		cte_loc.locationLevel + 1,
		loc.designation,
		pod.designation,
		adr.streetname, 
		adr.streetnumber, 
		tow.zip, 
		tow.town
	FROM [inventarisierungsloesung].Location AS loc
	INNER JOIN cte_location AS cte_loc
		ON cte_loc.location_id = loc.parentid
	INNER JOIN [inventarisierungsloesung].pointofdelivery pod ON pod.location_fk = loc.location_id
	INNER JOIN [inventarisierungsloesung].address adr ON loc.address_fk = adr.address_id
	INNER JOIN [inventarisierungsloesung].town tow ON adr.town_fk = tow.town_id
)

Select * FROM cte_location

Der obige Script wird von einer StoredProcedure angesptossen.

ERROR: Aktuell liegt ein Fehler vor was aus Zeitgründen nicht behoben wird.

"The data reader is incompatible with the specified 'inventarisierungsloesungModel.Location'. A member of the type, 'location_id', does not have a corresponding column in the data reader with the same name."

Ausführung auf der Datenbank ergiebt folgender Output:

CTE_OutPut