Laden...

EF 4.3 Code First Validierung

Erstellt von M@TUK vor 12 Jahren Letzter Beitrag vor 12 Jahren 628 Views
M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 12 Jahren
EF 4.3 Code First Validierung

verwendetes Datenbanksystem: MS SQL 2008 r2

Hi...

ich verwende das EF 4.3 mit Code First.

Dabei würde ich jetzt gerne bestimmte Objekte von Basis-Objekten ableiten.

Beispiel:


class BaseEntity 
{
     public string Title { get; set;}
     public string Text { get; set;}

     public string Keywords { get; set; }
}

class EntityA : BaseEntity
{
     public int EntityAId { get; set;}
     public bool Whatever { get; set;}
}

class EntityB : BaseEntity
{
     public int EntityBId { get; set;}
     public DateTime Date { get; set; }
}

Das funktioniert von der Datenbank her so wie ich es haben möchte.

Problem ist jetzt nur die Validierung.

In EntityA wäre zb. Title ein "Pflichtfeld", in EntityB Title und Keywords.

Ich würde natürlich gerne die Dataannotations verwenden, aber wie soll das funktionieren?

Welche Möglichkeiten gibt es hier eine ordentliche Validierung zusammenzubringen? Es geht eigentlich nur um "Pflichtfeld/Nicht-Pflichtfeld".

thx

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 12 Jahren

ein weiteres Beispiel...



public class Base
{
    public int BaseId { get; set;}
    public string Title { get; set;}
    public string Keywords { get; set; }
}

public class EntityX 
{
    public int EntityXId { get; set; }

    public virtual Base BaseEntity { get; set; }
}

public class EntityY
{
   public int EntityYId { get; set; }

   public virtual Base BaseEntity { get; set;}
}

Und hier hätten ebenfalls je nach Entity die BaseEntities unterschiedliche Pflichtfelder...

*ratlos*

16.807 Beiträge seit 2008
vor 12 Jahren

Jede Entity für sich.

Ich nutze aber IValidateableObject.
In [gelöst] ASP MVC + EntityFramework: Connection (closed/ opened) ==> Context Sharing habe ich dazu ein Beispiel.

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 12 Jahren

Danke Abt,

werd ich mir gleich mal anschauen...