Tôi mới dùng LINQ to SQL và cố gắng tạo một đối tượng truy nhập dữ liệu chung (DAO) cho việc tạo, đọc, cập nhật và hủy bỏ cơ bản (CRUD) để tôi có thể sử dụng lại mã. Tôi đã thành công trong việc tạo một phương thức chung sẽ xóa bất kỳ thực thể nào bằng cách sử dụng mã bên dưới, nhưng tôi đã tự hỏi liệu có ai biết cách tạo một phương thức chung sẽ chọn bất kỳ thực thể nào bằng một trường Id chung tồn tại trên tất cả các bảng.Làm thế nào để tạo các đối tượng truy nhập dữ liệu chung (DAO) CRUD với LINQ to SQL
/// <summary>
/// Generic method that deletes an entity of any type using LINQ
/// </summary>
/// <param name="entity"></param>
/// <returns>bool indicating whether or not operation was successful</returns>
public bool deleteEntity(Object entity)
{
try
{
DomainClassesDataContext db = new DomainClassesDataContext();
db.GetTable(entity.GetType()).Attach(entity);
db.GetTable(entity.GetType()).DeleteOnSubmit(entity);
db.SubmitChanges();
return true;
}
catch(Exception ex)
{
Console.WriteLine(ex.StackTrace);
return false;
}
}
Tôi khá chắc chắn rằng patter cùng sẽ làm việc để cập nhật và chèn và muốn có một phương pháp chung trên GenericDAO rằng sẽ lấy tôi bất kỳ thực thể (ví dụ khách hàng, hóa đơn, WorkOrder, vv ...) dựa trên Id thực thể. Cảm ơn những phản hồi hữu ích của bạn.
Cảm ơn bạn rất nhiều. Điều này hoạt động hoàn hảo. Tôi đã chỉ sử dụng Hibernate với Java trong quá khứ và khung đã được đưa ra. Bây giờ, tôi là nhà phát triển duy nhất làm việc trên một dự án từ đầu nên đây là lần đầu tiên tôi phải viết lớp truy cập dữ liệu của riêng mình bên ngoài một nhóm. Tôi ước tôi có đủ đại diện để bỏ phiếu cho giải pháp này. Tôi mới tham gia cộng đồng và chắc chắn sẽ bỏ phiếu này khi đại diện của tôi cao hơn. – Grasshopper
@AaronMajor Glade để trợ giúp và chào mừng bạn đến với stackoverflow, BTW: bạn có thể đánh dấu câu trả lời là được chấp nhận nếu bạn thấy câu trả lời hữu ích thấy điều này: http://stackoverflow.com/faq#howtoask –
@MahmoudGamal câu trả lời tuyệt vời. Có bắt buộc phải sử dụng một giao diện không, chúng ta chỉ cần định nghĩa một lớp đơn (Repository) và từ phương thức Action của controller Thêm hoặc cập nhật hoặc xóa một bản ghi. Cảm ơn – User