2008-12-16 36 views
8

Làm cách nào để có được id bản ghi sau khi lưu nó vào cơ sở dữ liệu. Ý tôi là thực sự là một cái gì đó như thế.Nhận Id bằng LINQ to SQL

Tôi có lớp Document (đó là thực thể tho từ DataBase) và tôi có thể tạo một thể hiện như

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

hơn những gì tôi muốn là để lấy giá trị của nó id (docid) mà nằm ở cơ sở dữ liệu và nó chính cũng chính là số tự động. Một điều, sẽ có rất nhiều người dùng trên hệ thống và gửi rất nhiều hồ sơ như vậy.

Cảm ơn tất cả mọi người trước :)

+0

Tôi nghĩ rằng bạn nên bỏ đánh dấu nó như wiki cộng đồng. –

+0

Ok, nhưng tôi không biết Community Wiki có nghĩa là gì? – Tarik

Trả lời

12

.SubmitChanges Một khi bạn đã chạy rồi doc.docId nên được dân cư với các Id đã được tạo ra trên cơ sở dữ liệu.

2

LINQ to SQL thực hiện theo dõi thay đổi theo mặc định. Vì vậy, một khi hàng của bạn được chèn vào, đối tượng của bạn được cập nhật và thêm vào datacontext. Bạn sẽ có một hàng hợp lệ mới trong bộ sưu tập tài liệu của bạn.

This bài đăng blog của Charlie Calvert có một số mẫu Linq tốt để tải xuống. Tôi giữ nó chỉ để tham khảo.

5

Giống như tất cả mọi người đã nói rằng bạn sẽ có thể làm điều gì đó như thế này:

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

sau đó nhận được Id với:

int ID = doc.docId; 
+0

Cảm ơn bạn đã trợ giúp và sửa đổi mã. – Tarik