I suivre par exemple l'entité-cadre:colonne d'identité dans EF 4
http://msdn.microsoft.com/en-us/library/bb399182.aspx
et j'ai problème avec des colonnes d'identité.
Voici une partie de code de base de données création:
CREATE TABLE [dbo].[Person](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[HireDate] [datetime] NULL,
[EnrollmentDate] [datetime] NULL,
CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
(
[PersonID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
Dans VS 2010 je construis .edmx et au modèle que je vois que personne StoreGeneratedPattern est définie à l'identité.
Mais quand je veux créer personne, par:
Pourquoi je dois mettre id, si cette colonne est autoincrement?
EDITŁ
Je pensais que je trouve le moyen de résoudre mon problème par:
var schoolContext = new SchoolEntities();
schoolContext.AddToPeople(new Person() { LastName = "Gates", FirstName = "Bil" });
schoolContext.SaveChanges();
parce qu'il a ajouté Bill à des personnes, mais ... parce que PersonID n'est pas annulable, et il lui inséré avec id 0. Quand j'ai essayé d'ajouter une autre personne de la même façon bien sûr, je reçois l'erreur au sujet de clé primaire :)
donc encore rien ...
Toutes les idées?
Merci Marc! C'est la prochaine fois que vous économiserez beaucoup de temps – user278618
Joli motif mais je pense que vous seriez plus en sécurité en utilisant le 0 par défaut pour l'ID .. -1 échouerait aux vérifications par défaut et on pourrait supposer que vous ne créeriez pas une table avec une identité commençant à zéro. –
@daveL: les nombres négatifs fonctionnent très bien pour moi .... –