2010-03-24 37 views
5

Tôi đang sử dụng LINQ to sql và tôi có rất nhiều bảng có khóa ngoài dẫn đến UserId.LINQ to sql - xóa một số hồ sơ liên quan

Có thể xóa một số bảng nước ngoài sau khi xóa hay không.

Ví dụ: tôi muốn hồ sơ người dùng (bảng khác) được xóa tự động với người dùng nhưng không xóa bài đăng trên diễn đàn của người dùng.

Điều này có thể xảy ra hoặc tôi có phải xử lý mã này không?

Trả lời

12

Tôi nghĩ rằng điều này link là rất hữu ích.

LINQ to SQL không hỗ trợ hoặc nhận ra các hoạt động xóa tầng. Nếu bạn muốn xóa một hàng trong một bảng rằng có những hạn chế chống lại nó, bạn phải hoàn thành một trong các nhiệm vụ sau đây:

  • Đặt ON DELETE quy tắc CASCADE trong ràng buộc foreign-key trong
    cơ sở dữ liệu.

  • Sử dụng mã của riêng bạn để xóa các đối tượng con đầu tiên ngăn không cho đối tượng chính bị xóa .

+0

Cảm ơn bạn đã trả lời. Chưa thử điều này, tôi đã có bàn tay đầy đủ với những thứ khác. Tôi sẽ cố gắng này ngày hôm nay và đánh dấu là trả lời nếu nó hoạt động :) –

0

Tôi không chắc chắn với mã, nhưng bạn không thể đặt tùy chọn Cascade on Delete trong SQL?