2010-04-24 4 views
2

J'ai jeté un coup d'œil à Entity Framework 4. En générant du code pour SQL Server 2008, j'en suis arrivé au point où je veux définir certaines valeurs par défaut pour certains champs. Comment définir dans le concepteur pour un champ DateTime Créé la valeur par défaut de DateTime.Now dans le concepteur pour un champ DateTime.Now créé?Comment affecter des valeurs par défaut et définir des clés uniques dans Entity Framework 4 Designer

-> Erreur 54: La valeur par défaut (DateTime.Now) n'est pas valide pour DateTime. La valeur doit être sous la forme 'aaaa-MM-jj HH: mm: ss.fffZ'

  • comment faire pour la génération de code une chaîne Champ unique. Comme E-Mail ou Nom d'utilisateur peut exister seulement une fois dans la table. J'ai cherché beaucoup sur Internet et vérifié mes livres Pro Entity Framework 4.0 et Programming Entity Framework. Mais aucun d'entre eux ne semble proposer le problème de valeur par défaut ou utiliser les commandes sql comme valeurs par défaut pour la génération de la base de données.

    Une autre chose est, comment empêcher la génération de base de données toujours à partir des tables de dépôt? Au lieu de cela, je veux ajouter des champs non existants et conserver les données.

    Merci pour vos suggestions.

  • Répondre

    2

    Vous pouvez toujours définir la classe partielle et initialiser la valeur dans costructor:

    public partial class MyEntityClass 
    { 
        public MyEntityClass() 
        { 
         CreationDate = DateTime.Now; 
        } 
    } 
    

    Si le champ est unique, vous devrez vérifier vous-même et inclure dans votre logique de validation.

    +0

    merci. C'est plus une solution de contournement, mais au moins, il fait le travail. Mais en utilisant un OR Mapper, je suppose que ce n'est pas possible cette fois-ci. – csharpnoob

    +2

    @csharpnoob: Il est certainement possible de faire du côté db. Regardez StoreGeneratedPattern: http://msdn.microsoft.com/en-us/library/bb738536.aspx – LukLed

    Questions connexes