Ich möchte eine Funktion in edmx, die Skalierer Wert, wie erstelle ich es in SSDL erstellen und wie es im Code zugreifen?Erstellen und Benutzer Benutzerdefinieren Funktion in edmx
Antwort
Ein Problem, das Sie haben, ist, dass Ihre SSDL automatisch vom 'EntityModelGenerator' generiert wird, so dass die Bearbeitung durch eine Neuerstellung gelöscht wird. Ihre Änderungen müssen in der EDMX-Datei vorgenommen werden.
Zuerst müssen Sie entscheiden, ist (1) Ihr Rückgabewert eine Berechnung der Arten (dh Hinzufügen von Werten zusammen in der Anwendung, anstatt auf Datenbankebene), oder (2) ist es ein direkter Aufruf an eine Datenbank gespeicherte Prozedur?
(1) Erster Schritt ist die Funktion XML-Definition in der EDMX-Datei hinzuzufügen:
<Function Name="LineTotal" ReturnType="decimal">
<Parameter Name="lineTotal" Type="MyDbModel.OrderDetail">
<DefiningExpression>
od.Price * od.Quantity
</DefiningExpression>
</Parameter>
</Function>
Jetzt, obwohl Ihre EDMX über diese Funktion kennen, Ihre IntelliSense nicht. Sie müssen also Code hinzufügen, damit dies funktioniert. Es ist eine bewährte Methode, diese Funktionen in einer separaten Klasse zu platzieren.
Entity Framework wird diesen Funktionsaufruf stattdessen an den EDMX umleiten. Jeder direkte Aufruf dieser Methode, bei dem das Modell nicht existiert, löst eine Ausnahme aus.
Sie können es dann rufen Sie in Ihrer LINQ-Abfragen wie
var productValues = from line in model.OrderDetails
select new
{
od.ProductID,
od.Price,
od.Quantity,
LineTotal = ModeDefinedFunctions.LineTotal(line)
};
(2) Wenn Sie eine gespeicherte Prozedur direkt hinzufügen, es einfacher ist, es auf die EDMX Designer per Drag & Drop. Es gibt ein [FunctionImport()] Attribut, aber ich habe es nicht benutzt. Sie können per Drag & Drop sehen, welchen Code in der EDMX-Datei generiert wird?
Alternativ können Sie die model.ExecuteCommand(<spname> , params object[] values )
gespeicherte Prozedur Ausführungsmethode aufrufen. nur Produktnamen von meinem Tisch will basierend auf Produkt-ID
- 1. Erweitern Core Edmx, mehrere Edmx in EF4
- 2. EDMX Verbindungszeichenfolge
- 3. Scalar-Eigenschaft und Navigationseigenschaft EDMX
- 4. Tabellenalias in linq edmx
- 5. Edmx brauchen Primary_Key?
- 6. Benutzer erstellen und Passwort zurücksetzen in Django
- 7. django Benutzer erstellen und protokollieren sie in
- 8. Visual Studio 2013 Fehler beim Erstellen einer EDMX-Datei
- 9. Vererbung zwischen edmx-Dateien
- 10. Benutzer in Firebase, Android erstellen
- 11. Hilfe zurück EDMX Elements
- 12. Entity Framework mit mehreren edmx
- 13. EDMx-Modelle - Datenanmerkungsvalidierungen
- 14. Firebase erstellen Benutzer "manuell"
- 15. Was ist "Entity Key" in EDMX-Datei?
- 16. PHP/MYSL - Erstellen Avatar Upload-Funktion für Benutzer mit BLOB
- 17. Datei im Speicher erstellen und Benutzer herunterladen
- 18. C# REPL Entity Framework .edmx
- 19. Sitecore CMS Erstellen neuer Benutzer und Rolle
- 20. Regelmäßige Benutzer in CouchDB erstellen
- 21. PHP PDO erstellen MySQL-Datenbank und Benutzer und Privilegien vergeben
- 22. Funktion Benutzer IP-Adresse in Yü
- 23. Funktion erstellen in Lua
- 24. Generieren eines EDMX aus einer DB2-Datenbank
- 25. Erstellen neuer Benutzer firebase
- 26. Wie programmatisch Datenbank und Benutzer in Influxdb erstellen?
- 27. Stormpath-Benutzer erstellen und der Gruppe in einem Anruf zuweisen
- 28. Wie separate Login für Admin und Benutzer in Django erstellen?
- 29. Assistenten für neue Benutzer erstellen
- 30. Entity Data Model Wizard nicht Erstellen von Tabellen in EDMX-Datei
i hinzufügen Tag in SSDL, in dem meine SQL-Abfrage in Abschnitt definieren und legen Sie es als iscomposable = true, aber es hat nicht funktioniert, i, –