2017-03-27 4 views
0

c'est mon modèle dans le code premier et j'utiliser Id comme clé dans des conditions normales pour l'indice et l'identité de ma tabledébut Id de 10 pas 1 dans le code mvc Première و commencer incrémentation automatique à partir d'un point précis

public int Id { get; set; } 


    public int Code { get; set; } 

    public string Name { get; set; } 

    public string Description { get; set; } 
    public virtual IEnumerable<Item> Items { get; set; } 
    public int MainGroupId { get; set; } 
    public virtual MainGroup mainGroup { get; set; } 

mon problème est: comment commencer l'incrément automatique à partir d'un point spécifique du code, lorsque j'ajoute un élément à la base de données, en mode par défaut id à partir de 1 mais je veux commencer à partir de 10, comment puis-je faire?

Répondre

1

Je pense que vous pouvez utiliser une colonne d'identité et personnaliser l'initialisation ou la migration de votre base de données pour définir le germe de votre colonne d'identité.

La commande T-SQL pour ce faire est la suivante:

DBCC CHECKIDENT ('Offer', RESEED, 123); 

Notez que la valeur suivante est insérée pas 123, mais 123 + incrément (124 si incrément par défaut de 1).

Vous pouvez également utiliser une colonne avec DatabaseGeneratedOption.Computed et une séquence comme valeur par défaut pour votre champ (si vous utilisez une version récente du serveur SQL). Lorsque vous créez une séquence, vous pouvez spécifier la valeur initiale et l'incrément:

CREATE SEQUENCE OfferNoSeq 
START WITH 1 -- Initial Value 
INCREMENT BY 1 -- Increment 

Une joindre cette séquence par défaut pour la colonne OfferNo comme ceci:

ALTER TABLE Offer ADD CONSTRAINT OfferNoSeq 
DEFAULT (NEXT VALUE FOR OfferNoSeq) FOR OfferNo; 

Il n'y a aucun moyen direct de mettre en œuvre ceci dans le code d'abord. Donc, pour utiliser l'une de ces options, vous devez

  • [Customize DB Initialization] Cela se fait en mettant en place votre propre classe de base de données d'initialisation et d'exécuter les commandes SQL souhaitées à partir les méthodes de semences (chercher la mise en œuvre de la classe publique MyInitializer dans l'article lié) ou Customize migration: vous pouvez exécuter une commande SQL dans la méthode Up() ou vers le bas() de votre migration, comme le montre la réponse liée