Ich möchte nicht für meine aktuelle ModifeidDateTime sein, Maschinenzeit bereits Serverzeit. Jedes Mal, wenn ich eine Person in meiner Datenbank auf SQL Server 2008 aktualisieren oder hinzufügen möchte, möchte ich das Feld "ModifiedDateTime" ausfüllen. Es ist nicht so, dass ich die Aktualisierungsabfrage wie beim Datenadapterbefehl ändern kann, wenn ich mit dem Dataset arbeite und für mein ModifiedDateTime-Feld definiere, dass es = GetDate() ist. Ich habe eine gespeicherte Funktion erstellt, um einen Wert der GetDate() -Methode zu retutn, aber ich habe ein Problem, eine Prozedur zu importieren, die Werte als int, string ... oder gar keinen Wert zurückgibt, schon Entity-Werte als Person in meinem Fall . Warum das? Wie auch immer, es wäre eine große Hilfe, wenn Sie mir eine Lösung zur Verfügung stellen können, die den DateTime-Wert vom Server abruft.Wie kann man den Datenbankserver mit Entity Framework nach aktueller Datetime fragen?
Antwort
Gibt es einen Grund, warum Sie es nicht einfach in Ihre Datenbank übertragen können? Wenn Sie DateTime.Now in Ihre Entitätsabfrage einschließen, wird es auf die Datenbank heruntergedrückt (getdate).
Beispiel Linq zu Entitäten
var dQuery = dbContext.CreateQuery<DateTime>("CurrentDateTime() ");
DateTime dbDate = dQuery.AsEnumerable().First();
SQL generiert ..
SELECT GetDate() AS [C1] FROM (SELECT cast(1 as bit) AS X) AS [SingleRowTable1]
könnte eine bessere Art und Weise, es zu tun?
Das funktioniert gut. Ich habe über diese kanonischen Funktionen von datetime erfahren, aber ich wusste nicht, wie man sie aus dem Code dahinter benutzt. Ich habe gesehen, dass sie in CSDL verwendet werden können. Vielen Dank. – Levelbit
Update: nicht mehr direkten Zugriff auf CreateQuery-Methode haben - müssen Sie zuerst - wie folgt: var query = ((IObjectContextAdapter) dbContext) .ObjectContext.CreateQuery
Wenn Sie in VS 2008 eine Funktionsvorlage zum Zurückgeben eines Skalars hinzufügen, wird der Code nicht hinzugefügt, um die Verwendung zu vereinfachen. Sie müssen direkt auf die Funktionsvorlage zugreifen. Ich verwende die partielle Klasse, um die erforderlichen Methoden zur einfacheren Verwendung zu erstellen. Sie haben dies in VS2010 behoben.
public DateTime GetDateTime()
{
var returnValue = new DateTime();
using (var connection = new EntityConnection(Connection.ConnectionString))
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = "myStoredProc";
command.CommandType = CommandType.StoredProcedure;
try
{
returnValue = Convert.ToDateTime(command.ExecuteScalar());
}
finally
{
connection.Close();
}
}
}
return returnValue;
}
Weitere Informationen: Function Imports in Entity Model with a non-Entity Return Type
Dies ist ein Update von @Nix Antwort auf EF4:
var dateQuery = dbContext.Database.SqlQuery<DateTime>("SELECT getdate()");
DateTime serverDate = dateQuery.AsEnumerable().First();
- 1. Entity Framework Beziehungen Fragen
- 2. Entity Framework Datetime-Datentypen Mappings
- 3. meine DB mit Entity Framework Datetime
- 4. Wie nach Datum mit Entity Framework suchen?
- 5. Fragen zu Entity Framework Kontext Lebensdauer
- 6. wie Null Datetime in Datenbank mit Entity Framework CodeFirst einfügen
- 7. Wie verwendet man Transaktion in Entity Framework?
- 8. Entity Framework - MySQL - Datetime Format Ausgabe
- 9. Wie erstellt man ein Entity-Framework-Projekt?
- 10. Kann ich den Entity Framework-Abfragegenerator überschreiben?
- 11. Subquery mit Entity Framework
- 12. mit Hashset in Entity Framework
- 13. Sortieren nach mit Sortierklausel | Entity Framework
- 14. Datum nur Teil von Datetime-Wert mit Entity-Framework
- 15. Wie InsertOrSelect mit Entity Framework
- 16. Datetime Bindung Fragen
- 17. Wie wird den Standard Entity Framework und Standarddatum verwenden Werte
- 18. In Entity Framework Wie
- 19. Wie Erweiterungsmethoden mit Entity Framework
- 20. System.OutOfMemoryException mit Entity Framework?
- 21. Wie definiert man den vorhandenen Datenbankserver in der ARM-Vorlage?
- 22. Wie kann man Entity Framework 6 über Async-Methoden verhöhnen?
- 23. Entity Framework - nach Name Einheit erhalten
- 24. Entity Framework: Problem mit Lazy Load "Lösung" (nicht zu fragen, wie Lazy Loading zu tun)
- 25. Bedingte Assoziation mit Entity Framework
- 26. Kann keine Klasse mit Entity Framework verbinden
- 27. WithOptional mit Entity Framework Core-
- 28. Entity Framework: Spalten ignorieren
- 29. Kann nicht mit Entity Framework eingefügt werden
- 30. Entity-Framework-Beziehung gebrochen
Welche Version von .NET und Visual Studio verwenden Sie? – bryanjonker