2009-06-02 5 views
1

Je voudrais implémenter une validation de règles métier comme Scott Guthrie l'a fait dans son tutoriel MVC Nerddinner (http://nerddinnerbook.s3.amazonaws.com/Part3.htm), mais je rencontre un problème en essayant de le faire. Scott utilisait Linq to SQL dans son didacticiel. Il crée des classes partielles pour ses objets de données, puis il implémente une méthode partielle appelée OnValidate(), qui, selon lui, est un hook qui est exécuté lorsque les données sont conservées dans la base de données pour un objet de données donné.OnValidate() et LINQ to Entities

public partial class Dinner { 

    partial void OnValidate(ChangeAction action) { 

    if (!IsValid) 
     throw new ApplicationException("Rule violations prevent saving"); 
    } 

} 

Mon problème est que j'utilise LINQ to Entities et apparemment il n'y a pas de méthode « crochet » comme celle-ci que l'on peut utiliser, ou du moins je ne le trouve pas s'il y a un. Quelqu'un peut-il me jeter un os sur la façon de faire cela avec Linq to Entities?

Répondre

2

Vous pouvez faire la validation des données dans LINQ à entités, mais il est différent de LINQ-to sql, comme vous l'avez découvert. Voir le lien suivant:

data validation in linq-to-entities

+0

Génial! Le lien que vous avez fourni est exactement ce que je cherchais. Merci encore. – Jagd

0

Vérifier:

+0

vous êtes liens semblent seulement appliquer à LINQ to SQL, et non aux entités Linq. Malheureusement, les mêmes concepts qui fonctionnent avec Linq to SQL ne fonctionnent pas avec Linq to Entities quand il s'agit de la validation de données lors d'une sauvegarde. – Jagd

+0

Non. Vous avez tort. Les annotations de données fonctionnent avec toutes les classes. Également EF généré ceux. Sauf que vous utiliserez l'attribut MetadataType et les classes qui définiront ce type de métadonnées. –

Questions connexes