Mit Entitätsframework ist es möglich, Methoden zu einer Objektklasse hinzuzufügen? Zum Beispiel habe ich eine CLIENT-Zuordnung und ich möchte eine "getAgeFromBirhDate" -Methode erstellen.Hinzufügen von Methoden zu einem Modell mit Entitätsrahmen
Antwort
Ja. Es ist möglich. Entity Framework generiert Partial Classes.
Das bedeutet, dass Sie eine andere Datei erstellen können, die einen anderen Teil der partiellen Klassendefinition enthält (mit Ihren zusätzlichen Methoden) und alles wird gut funktionieren.
public static class ModelExtended
{
public static void SaveModelToXML(this Model1Container model, string xmlfilePath)
{
///some code
}
}
Dies wird eine Erweiterungsmethode erstellen, die die meiste Zeit in Ordnung ist. Wenn Sie jedoch eine Eigenschaft hinzufügen möchten (um sie in Property-Ausdrücken zu verwenden), sind partielle Klassen der richtige Weg. – dognose
Ein Beispiel für die erste Antwort:
wenn Sie eine Entität namens haben Flower
können Sie diese partial
Klasse verwenden Methode, um es für das Hinzufügen von:
namespace Garden //same as namespace of your entity object
{
public partial class Flower
{
public static Flower Get(int id)
{
//
}
}
}
Vorausgesetzt, dass Sie mit Ihrem Teil Klasse ein Entity Framework Attribut Preis aus der Datenbank:
namespace Garden //same as namespace of your entity object
{
public partial class Flower
{
public int price;
public string name;
// Any other code ...
}
}
Wenn Sie keine andere Teilklasse verwenden möchten, können Sie eine eigene benutzerdefinierte Klasse definieren, die die ursprüngliche Entität enthält, die als Attribut gespeichert ist. Sie können hinzufügen, dann eine beliebige zusätzliche benutzerdefinierte Attribute und Verfahren
namespace Garden //same as namespace of your entity object
{
public class CustomFlower
{
public Flower originalFlowerEntityFramework;
// An extra custom attribute
public int standardPrice;
public CustomFlower(Flower paramOriginalFlowerEntityFramework)
{
this.originalFlowerEntityFramework = paramOriginalFlowerEntityFramework
}
// An extra custom method
public int priceCustomFlowerMethod()
{
if (this.originalFlowerEntityFramework.name == "Rose")
return this.originalFlowerEntityFramework.price * 3 ;
else
return this.price ;
}
}
}
Dann, wo immer Sie es verwenden möchten, können Sie Ihre eigene Klasse Objekt und speichern darin, das eine vom Entity Framework erstellen:
//Your Entity Framework class
Flower aFlower = new Flower();
aFlower.price = 10;
aFlower.name = "Rose";
// or any other code ...
// Your custom class
CustomFlower cFlower = new CustomFlower(aFlower);
cFlower.standardPrice = 20;
MessageBox.Show("Original Price : " + cFlower.originalFlowerEntityFramework.price);
// Will display 10
MessageBox.Show("Standard price : " + cFlower.standardPrice);
// Will display 20
MessageBox.Show("Custom Price : " + cFlower.priceCustomFlowerMethod());
// Will display 30
- 1. Hinzufügen von benutzerdefinierten Methoden zu einem untergeordneten NSManagedObject
- 2. Feld zu einem beredten Modell hinzufügen
- 3. eine Zeile zu einem Modell hinzufügen
- 4. Entitätsrahmen. Nachladen von lokalen Daten
- 5. Hinzufügen von Beziehungen zu Laravel Factory-Modell
- 6. Entitätsrahmen. Anzeigen von doppelten Datensatzwiedergaben
- 7. Hinzufügen von Methoden zu Nullwert-Typen
- 8. Modell mit einem Thread
- 9. Angular: Providing Methoden zu ng-Modell
- 10. Übergang von einem Controller zu einem Modell
- 11. Mit Methoden von einem DAO zu einem anderen
- 12. Eigenschaften/Methoden zu einem Array erweitern?
- 13. Hinzufügen von Fremdschlüssel zum Modell mit Chicagoboss?
- 14. Hinzufügen von HTML zu einem String Javascript?
- 15. Hinzufügen einer neuen has_many-Beziehung zu einem vorhandenen Modell
- 16. Hinzufügen eines Wertes zu einer Liste, die auf einem Modell
- 17. Hinzufügen eines Feldes zu einem bestehenden Django-Modell
- 18. Hinzufügen von Methoden in Sammlungen
- 19. hinzufügen CSS-Klasse von Modell
- 20. Hinzufügen von Beiträgen zu einem benutzerdefinierten Blog?
- 21. Empfangen von "unbekannten Methoden" -Fehlern beim Ausführen von RSpec-Tests mit einem ActiveRecord-Modell
- 22. Groovy Meta-Programmierung - Hinzufügen von statischen Methoden zu Object.metaClass
- 23. AngularJs Hinzufügen von Methoden zu Controller von einer Komponente
- 24. Spring JPA + Hibernate Hinzufügen von Bedingungen zu meinem gesamten Modell
- 25. Hinzufügen von deaktivieren/aktivieren Methoden zu Summernote Editor
- 26. Hinzufügen Validierung zu __call__ Methoden in Python
- 27. AngularJS. Hinzufügen von $ Uhr zu dem bestimmten Modell
- 28. Pass Informationen von einem View-Modell zu einem anderen
- 29. Programmatically Hinzufügen von Spalten (mit Bindung) zu einem ansichtsbasierte NSTableView?
- 30. Hinzufügen von Feldern zu bestehenden Modell funktioniert nicht in Django
using System ; mit System.Collections.Generic; mit System.Linq; mit System.Web; Namespace Foo.Models { public partial class FOO_USERS { public void bar() { // den Code der Methode hier } } } – eka808
dieser Code funktioniert :) – eka808
Ist es möglich, zu verwenden, Diese Methode in einer LINQ-Abfrage? .. – Json