8
votes

La valeur par défaut de la base de données n'est pas insérée lors de la création d'enregistrement par cadre d'entité

J'ai une table de loginRecord dans SQLServer 2008 avec la structure de colonne suivante- xxx pré>

Je insère nouvel enregistrement par l'entité framework 6 comme ci-dessous - P>

 db.LoginRecords.Add(new LoginRecord() { UserId = UserId }); 
 db.SaveChanges();


8 commentaires

Essayez nouvel enregistrement de connexion () {userid = ID utilisateur, login DateTime = null});


@juergen d, sa ne résout pas ce problème.


Marquez votre propriété de date avec attribut de base de données


Essayez de définir l'attribut "StoredGeneratedProperty" de votre DateTime dans le fichier EDMX à calculé. Du fil suivant: Stackoverflow.com/a/4688135/2488939


@Karim, comment puis-je faire ça? Je suis plutôt nouveau dans le cadre d'entité.


Accédez au concepteur de fichier EDMX en cliquant sur votre fichier EDMX. Puis localisez votre table et la propriété. Cliquez avec le bouton droit sur la colonne de la table que vous souhaitez modifier et cliquez sur Propriétés. La fenêtre de la propriété devrait ensuite venir et vous verrez comme l'une des propriétés "StoredGeneratedProperty". Changer cela pour calculé.


Si vous faites votre travail dans le code de code de code, vous devez marquer votre propriété avec: [DatabaseGeneratedOption (base de donnéesGenerationOption.com)] sinon si vous faites du modèle d'abord, suivez les instructions Vishwaram


@Maharaj, votre suggestion fonctionne. Faites-en une réponse pour que je puisse accepter.


3 Réponses :


2
votes

En plus de changer le fichier EDMX comme suggéré par Vishwaram Maharaj, vous devez définir la définition de la correspondance de la table entre EF et la DB. La description de la table de "LogindateTime- Autoriser NULLS FALSE" est elle-même fausse. Le champ permet clairement des nuls si les nulls sont insérés. Allumez la colonne pour ne pas permettre à NULL s'il ne devrait vraiment pas avoir de valeurs nuls:

ALTER TABLE LoginRecords ALTER COLUMN LoginDateTime DATETIME NOT NULL;


0 commentaires

7
votes

combiné mes deux commentaires dans une réponse.

Essayez de définir l'attribut "StoredGeneratedPattern" de votre DateTime dans le fichier EDMX sur calculé. Du fil suivant: http://www.stackoverflow.com/a/4688135/2488939

Pour ce faire, allez sur le concepteur de fichiers EDMX en cliquant sur votre fichier EDMX. Puis localisez votre table et la propriété. Cliquez avec le bouton droit sur la colonne de la table que vous souhaitez modifier et cliquez sur Propriétés. La fenêtre de la propriété devrait ensuite venir et vous verrez comme l'une des propriétés "StoredGeneratedPattern". Changer cela en calculé.


0 commentaires

-1
votes

Définition des valeurs par défaut dans l'entité Framework 5 et 6 en modifiant le fichier de modèle T4 Fait ci-dessous des modifications de .tt (fichier de modèle) Exemple: Rouge signifie supprimer et vert signifie ajouter Entrez la description de l'image ici Cela ajoutera un constructeur dans toutes les classes d'entité avec une méthode onCréated.

Comme ci-dessous p> xxx pré>

puis crée un fichier de classe en utilisant le même espace de noms des entités. P>

public partial class Category
{
    partial void OnCreated()
    {
        Name = "abc"
    }
}


1 commentaires

S'il vous plaît résumez la vidéo