Tôi sử dụng LINQ-SQL làm DAL của mình, sau đó tôi có một dự án có tên là DB hoạt động như BLL của tôi. Các ứng dụng khác nhau sau đó truy cập BLL để đọc/ghi dữ liệu từ Cơ sở dữ liệu SQL.Sự khác nhau giữa các truy vấn LINQ này là gì?
tôi có những phương pháp trong BLL của tôi cho một bảng cụ thể:
public IEnumerable<SystemSalesTaxList> Get_SystemSalesTaxList()
{
return from s in db.SystemSalesTaxLists
select s;
}
public SystemSalesTaxList Get_SystemSalesTaxList(string strSalesTaxID)
{
return Get_SystemSalesTaxList().Where(s => s.SalesTaxID == strSalesTaxID).FirstOrDefault();
}
public SystemSalesTaxList Get_SystemSalesTaxListByZipCode(string strZipCode)
{
return Get_SystemSalesTaxList().Where(s => s.ZipCode == strZipCode).FirstOrDefault();
}
Tất cả khá thẳng về phía trước, tôi nghĩ.
Get_SystemSalesTaxListByZipCode
luôn trả về giá trị null, ngay cả khi nó có Mã ZIP tồn tại trong bảng đó.
Nếu tôi viết những phương pháp như thế này, nó sẽ trả hàng Tôi muốn:
public SystemSalesTaxList Get_SystemSalesTaxListByZipCode(string strZipCode)
{
var salesTax = from s in db.SystemSalesTaxLists
where s.ZipCode == strZipCode
select s;
return salesTax.FirstOrDefault();
}
Tại sao các phương pháp khác không trở về như nhau, như truy vấn nên giống hệt nhau?
Lưu ý rằng, quá tải Get_SystemSalesTaxList(string strSalesTaxID)
trả về một bản ghi tốt khi tôi cung cấp cho nó SalesTaxID
hợp lệ.
Có cách nào hiệu quả hơn để viết các loại lớp "trợ giúp" này không?
Cảm ơn!
ngốc câu hỏi - bạn có chắc là bạn đang chuyển mã ZipCode sang 'Get_SystemSalesTaxListByZipCode'? – Oded
Vấn đề là, như đã xác định, 'IEnumerable '- nhưng tôi chỉ khóc để nói" nó có lẽ là cách phàn nàn về ký hiệu hungarian ";-p –