Tôi làm theo bằng ví dụ khuôn khổ tổ chức:nhận dạng cột trong EF 4
http://msdn.microsoft.com/en-us/library/bb399182.aspx
và tôi có vấn đề với nhận dạng cột.
Dưới đây là một phần của quy tắc ứng tạo ra cơ sở dữ liệu:
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
Trong VS 2010 tôi xây dựng .edmx và ở mô hình tôi thấy rằng Người StoreGeneratedPattern được thiết lập để nhận dạng.
Nhưng khi tôi muốn tạo Person, bởi:
Tại sao tôi phải đưa id, nếu cột này là autoincrement?
EDITŁ
Tôi nghĩ rằng tôi tìm thấy cách để giải quyết vấn đề của tôi bởi:
var schoolContext = new SchoolEntities();
schoolContext.AddToPeople(new Person() { LastName = "Gates", FirstName = "Bil" });
schoolContext.SaveChanges();
vì nó bổ sung Bill cho người, nhưng ... vì PersonID không nullable, và nó chèn ông với id 0. Khi tôi cố gắng thêm một người khác theo cùng một cách tất nhiên tôi nhận được lỗi về khóa chính :)
Vì vậy, vẫn không có gì ...
Bất kỳ ý tưởng?
Cảm ơn bạn Marc! Đó là lần sau bạn tiết kiệm cho tôi rất nhiều thời gian – user278618
Mẫu đẹp nhưng tôi nghĩ bạn sẽ an toàn hơn bằng cách sử dụng mặc định 0 cho id .. -1 sẽ không kiểm tra giá trị mặc định và người ta có thể đoán bạn sẽ không thiết kế bảng có nhận dạng bắt đầu từ số không. –
@daveL: số âm làm việc tốt cho tôi .... –