Legen Sie eine Einschränkung für die Mindest-int-Wert
Ich bin mit dem Repository-pattern. Ich habe eine Entität namens " Produkt und ich möchte legen Sie den minimalen Wert für den Preis zu vermeiden, null Preise. Ist es möglich, um es zu schaffen in einem EntitytypeConfiguration Klasse?
Mein Produkt-Konfiguration-Klasse
public class ProductConfiguration : EntityTypeConfiguration<Product>
{
public PlanProductConfiguration(string schema = "dbo")
{
ToTable(schema + ".Product");
HasKey(x => new { x.IdProduct });
Property(x => x.Price).HasColumnName("flt_price")
.IsRequired()
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}
- Leider Fluent-API unterstützen nur MaxLength
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für server-seitige Validierung, Implementierung IValidatableObject auf Ihre Person. Für die client-seitige Validierung, wenn Sie MVC, fügen Sie die Daten Anmerkung zu Ihrem view-Modell. Und einen Datenbank-constraint, fügen Sie die check-Einschränkung durch den Aufruf der Sql () - Methode in einer migration.
Wenn Sie wollen, dass die Einschränkung, die Sie nicht anwenden können Sie über EF-Konfigurationen, aber Sie können es anwenden, mit der
check
siehe hier auf die Datenbank direkt, oder Sie anwenden können Anmerkungen zu Daten, die auf dem Modell sehen diese SO ein postEtwas wie:
Jedoch, dass nicht einen Unterschied machen, wenn Sie mit einem view-Modell, als diejenigen, die die Prüfungen nur auf ASP.NET Objekt-Erstellung(in der Regel beim erzeugen einer Instanz von einer web-Anfrage in einen controller), so dass, wenn Sie erstellen Sie eine Instanz, die Sie nicht haben, um zu gehorchen die Attribute, also, wenn Sie wollen, um fest zu validieren, müssen Sie es anwenden einer benutzerdefinierten getter-und setter-statt auto-Eigenschaften, so etwas wie:
Diese funktionieren in EF, so lange, wie Sie nicht haben und ungültige Daten in der Datenbank.
Eher als Attribute-basierte Validierung empfehle ich die Nutzung Fließend Validation die:
Ich denke, was Sie wollen, ist ein default Wert Ihrer Immobilie. Unfourtunaly EF nicht unterstützt festlegen von Standardwerten in diesem moment. Aber, wie eine Lösung für Ihr problem, Sie konnte erstellen Sie einen Konstruktor in der
Product
Klasse einen SatzPrice
- Eigenschaft, mit der minimale Wert, den Sie wollen: