2010-09-05 45 views
9

Tôi đã tạo tệp dbml trong dự án của mình và sau đó kéo hai bảng từ cơ sở dữ liệu vào trình thiết kế. Đây là các bảng cho các tiêu đề đơn đặt hàng và các dòng lệnh, và các dòng lệnh có một khóa ngoại để đặt hàng đầu trang để làm cho nó trở thành một mối quan hệ một với nhiều.Sự cố khi tạo liên kết bên trong tệp dbml cho LINQ to SQL

Ngay sau khi hai bảng được kéo vào nhà thiết kế, mũi tên liên kết xuất hiện và mọi thứ có vẻ chính xác. Trong các thuộc tính cho liên kết, Thuộc tính con được đặt thành True, Access là công khai, chế độ Thừa kế là (không), Tên là OrderLines (ban đầu là taOrderLines, nhưng được tôi chỉnh sửa để được gọi là OrderLines.

Vấn đề là không OrderLines tài sản được tạo ra. tôi đã kiểm tra bằng tay trong file cs tạo cũng có, và không phải OrderLines từ hoặc Hiệp hội được tìm thấy ở đó.

tôi đang làm gì sai ở đây?

+0

Tôi đã gặp vấn đề này hai lần và bằng cách nào đó tôi không thể tìm thấy câu hỏi này khi tìm kiếm giải pháp (ít nhất là không phải lúc đầu). Bản thân câu hỏi là tốt, nhưng tên câu hỏi hơi rộng khiến khó có thể nhận ra rằng đây là câu hỏi đúng. Kết quả là tôi đã tìm ra câu hỏi chỉ khi cố gắng viết câu hỏi của riêng mình (tôi đoán tìm kiếm dựa trên văn bản đã làm tốt công việc của nó). Câu hỏi chưa được giải thích mà tôi đã viết có tiêu đề giống như "Bảng liên kết không thể truy cập được từ mô hình". – jahu

Trả lời

22

Hãy chắc chắn rằng mỗi lớp có một khóa chính.


Nếu đối tượng của bạn không có thuộc tính khóa chính trong dbml, theo dõi đối tượng LinqToSql không thể thấy các đối tượng đó và các thuộc tính quan hệ sẽ không được tạo ra.

+0

Đó thực sự là vấn đề. Tôi thậm chí không xem xét rằng cơ sở dữ liệu tôi đã làm việc chống lại không có các khóa chính thích hợp được thiết lập. Bảng OrderLines không có khóa chính. Khi khóa chính đã được tạo, nó hoạt động như mong đợi. –