J'ai une table de loginRecord dans SQLServer 2008 avec la structure de colonne suivante- Je insère nouvel enregistrement par l'entité framework 6 comme ci-dessous - P> db.LoginRecords.Add(new LoginRecord() { UserId = UserId });
db.SaveChanges();
3 Réponses :
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;
combiné mes deux commentaires dans une réponse. P>
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 p>
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é. P>
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 Cela ajoutera un constructeur dans toutes les classes d'entité avec une méthode onCréated.
Comme ci-dessous p> 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"
}
}
S'il vous plaît résumez la vidéo
Essayez
nouvel enregistrement de connexion () {userid = ID utilisateur, login DateTime = null}); code>
@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.