I śledzić przykładem ramowej jednostki:Tożsamość kolumna EF 4
http://msdn.microsoft.com/en-us/library/bb399182.aspx
i mają problem z kolumny tożsamości.
Oto część kodu tworzenia bazy danych:
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
w VS 2010 buduję .edmx i na modelu widzę, że osoba StoreGeneratedPattern jest ustawiony na Identity.
Ale kiedy chcę stworzyć osobiście, przez:
Dlaczego muszę umieścić identyfikator, jeśli kolumna jest autoincrement?
EDITŁ
Myślałem, że znalazłem sposób, aby rozwiązać mój problem:
var schoolContext = new SchoolEntities();
schoolContext.AddToPeople(new Person() { LastName = "Gates", FirstName = "Bil" });
schoolContext.SaveChanges();
bo to dodaje Bill osób, ale ... ponieważ PersonID nie jest pustych, a to dodaje mu z identyfikatorem 0. Kiedy próbowałem dodać inną osobę w taki sam sposób oczywiście dostaję błąd o kluczu podstawowym :)
Więc jeszcze z niczego ...
pomysłów?
dziękuję Marca! Następnym razem zaoszczędzisz dużo czasu – user278618
Niezły wzór, ale myślę, że byłbyś bezpieczniejszy używając domyślnego 0 dla id .. -1 nie przeszedłby domyślnej kontroli wartości i można by założyć, że nie zaprojektowałbyś tabeli z tożsamością począwszy od zera. –
@daveL: Liczby ujemne działają dobrze dla mnie ... –