2009-02-11 26 views
9

Tôi mới sử dụng LINQ. Tôi vừa kéo tất cả các bảng cơ sở dữ liệu của mình vào trình thiết kế trong một dbml LINQ to SQL. Tất cả các mối quan hệ của tôi là chính xác và trông đẹp trong nhà thiết kế. Tôi có thể lấy dữ liệu bằng cách sử dụng mã LINQ đơn giản. Bây giờ tôi muốn thêm các phương thức riêng của mình nhưng không muốn thổi bay các thay đổi của mình nếu (khi nào) tôi cần phải tạo lại dbml của mình. Tôi đoán tôi chỉ cần tạo một tệp lớp mới và thiết lập một phần các lớp của các lớp được tạo ra. Điều này có đúng không? Ví dụ: tôi có một lớp được tạo có tên là SystemUser có chứa các cột SystemUserId, Tên người dùng, Mật khẩu, PersonId, SecurityQuestionId, SecurityQuestionResponse. Tôi muốn thêm phương thức có tên là void Xác thực() và thuộc tính mới được gọi là bool Đã xác thực. Về cơ bản tôi muốn vượt qua trong một tên người dùng và mật khẩu để Authenticate() và thiết lập Authenticated bất động sản dựa vào việc tìm kiếm một người sử dụng phù hợp, vv Trường hợp và làm thế nào tôi sẽ làm điều này?Thêm các phương thức mới vào các lớp được tạo LINQ to SQL

Trả lời

13

Các lớp do LINQ tạo ra là các lớp học một phần, có nghĩa là bạn có thể mở rộng chúng bằng cách tạo partial classes hoặc partial methods của riêng bạn.

Trong trường hợp của bạn, bạn có thể tạo một lớp từng phần cho Người dùng hệ thống của mình, rồi thêm (các) phương thức của bạn vào đó. Chúng sẽ không bị ghi đè nếu tệp DBML được tạo lại.

Cái gì như:

public partial class SystemUser 
{ 
    public bool Authenticated { get; set; } 

    void Authenticate() 
    { 
     //Perform custom logic here. 
    } 
} 
+0

Tất cả các câu trả lời là hữu ích, nhưng tôi thích các liên kết mà bạn cung cấp. Tôi mới vào StackOverflow vì vậy tôi nghĩ rằng bạn giành chiến thắng !? Cảm ơn. – user64874

+0

Woohoo! Cảm ơn. :-) –

2

Hãy xem qua việc sử dụng lớp học một phần ... nó có thể phù hợp với tình huống của bạn rất độc đáo.

1

Nếu bạn chỉ muốn lớp học của bạn có phương pháp mới, bạn đã tạo đúng một tệp mới và sử dụng lớp học một phần.

Các vấn đề liên quan