Hier eine kleine Sammlung an nützlichen Links zum Thema Audit in SQL-Server:
Blogartikel dazu (SQL 2005)
Trigger
Suchworte:
update()
columns_updated()
Alternative zum Selberschreiben (ab 2008):
Track Data Changes (SQL Server)
Posts mit dem Label SQL-Server werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SQL-Server werden angezeigt. Alle Posts anzeigen
2.16.2018
10.26.2016
EF liefert falsche Werte aus View auf SQL-Server
Manchmal liefert das EF falsche Werte aus einer View, die sich auf dem SQL-Server befindet (eventuelle auch aus anderen DBs, keine Erfahrung).
Das Problem wird durch fehlende bzw. falsche Entitäts-Schlüssel verursacht. Wenn das EF keine PrimaryKeys erkennt - und manchmal erkennt es auch die vorhandenen Keys in einer View nicht - dann wird ein ComponentKey aus allen nicht nullable Properties gebildet. Und der ist sowohl inhaltlich beliebig falsch als das er auch zu falschen Daten führt.
Abhilfe schafft die manuelle Korrektur der Entitätschlüssel im EF-Diagramm.
Hier noch eine Möglichkeit, wenn die View eigentlich keinen Schlüssel bietet. Diese verwendet eine Zeilennummer als Key (isnull(ROW_NUMBER() OVER (ORDER BY xy),-1) as rId). Isnull ist notwendig, da sonst die Zeilennummer manchmal nullable ist.
Das Verhalten kann komplett vermieden werden, wenn man eine Stored Procedure zwischenschaltet. Diese erlaubt auch das Sortieren der Daten.
Das Problem wird durch fehlende bzw. falsche Entitäts-Schlüssel verursacht. Wenn das EF keine PrimaryKeys erkennt - und manchmal erkennt es auch die vorhandenen Keys in einer View nicht - dann wird ein ComponentKey aus allen nicht nullable Properties gebildet. Und der ist sowohl inhaltlich beliebig falsch als das er auch zu falschen Daten führt.
Abhilfe schafft die manuelle Korrektur der Entitätschlüssel im EF-Diagramm.
Hier noch eine Möglichkeit, wenn die View eigentlich keinen Schlüssel bietet. Diese verwendet eine Zeilennummer als Key (isnull(ROW_NUMBER() OVER (ORDER BY xy),-1) as rId). Isnull ist notwendig, da sonst die Zeilennummer manchmal nullable ist.
Das Verhalten kann komplett vermieden werden, wenn man eine Stored Procedure zwischenschaltet. Diese erlaubt auch das Sortieren der Daten.
Abonnieren
Posts (Atom)
