Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

asp.net / EntityFramework - Tại sao nhóm ứng dụng của tôi gặp sự cố?

Bạn có thể sẽ cần gỡ lỗi API và chỉ định chi tiết hơn để giúp thu hẹp nguyên nhân. Một số điều tôi có thể thấy:

var prestation = queryString.FirstOrDefault();
// Handle when prestation comes back #null. Is that valid?

var results = db.Partenaires.Where(p => p.PartenairePrestations.Any(pp => pp.Prestation.NomPrestation == prestation.Value))
//                .ToList() // Avoid .ToList() here... Select the entity properties you need.
    .Select(p => new PartenaireMapItem {
        IdPartenaire = p.IdPartenaire,
        FirstName = p.FirstName,
        LastName = p.LastName,
        // NomComplet = p.LastName.Substring(0,1).ToUpper() + ". " + p.FirstName, // Remove. Make this a computed property in your view model.
        Type = p.Type,
        // DureeMin = 50, // Can remove, can be a computed property.
        Lat = p.Lat,
        Lng = p.Lng,
        ImageUrl = p.ImageUrl,
        SeDeplace = p.SeDeplace, // Ok if a String/value. 
        ADomicile = p.ADomicile, // Ok if a String/value.

        Notes = p.NoteClientPartenaires, // Ok if a String/value.
        Prestations = p.PartenairePrestations.Select(y => y.Prestation.NomPrestation).ToList(); // Assuming this is retrieving the names of presentations. List<string>.
    }).ToList();

return results;

Đầu tiên .ToList () là bắt buộc vì bạn đang cố gắng tính toán các giá trị (NameComplet) trong biểu thức Linq mà thông thường sẽ được cung cấp cho EF mà nhà cung cấp DB của bạn sẽ không hiểu. Để đạt hiệu quả, chỉ chọn các thuộc tính được ánh xạ và thay vào đó thay đổi bất kỳ giá trị đã tính nào thành các thuộc tính chỉ đọc trên mô hình chế độ xem của bạn. (PartenaireMapItem)

private string _nomComplet = null;
public string NomComplet
{ 
    get { return _nomComplet ?? (_nomComplet = LastName.Substring(0,1).ToUpper() + ". " + FirstName); }
}

Ví dụ đó đệm kết quả giả sử rằng chi tiết tên ở chế độ chỉ đọc. Nếu Họ / Tên có thể được cập nhật, chỉ cần trả lại tên đã tính mỗi lần.

Các thuộc tính khác sẽ ổn, giả sử rằng SeDeclace / ADomicile là các giá trị chuỗi và không phải là các thực thể con. Tương tự đối với danh sách Prestations. Danh sách các chuỗi cho tên máy trạm sẽ ổn.

Một thay đổi nhỏ khác mà tôi đã thực hiện là truy xuất các mô hình chế độ xem trong một biến để kiểm tra trước khi quay lại. Điều này tạo điều kiện tốt hơn cho việc sử dụng điểm ngắt để kiểm tra kết quả trước khi trả về. Từ đây, xác định xem có lỗi nào quay trở lại khi tính toán kết quả hay không, chẳng hạn như tuần tự hóa các mô hình chế độ xem kết quả trở lại máy khách.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thiết kế cơ sở dữ liệu cho bài kiểm tra với các ngôn ngữ khác nhau

  2. Nhận số lượng hàng bị ảnh hưởng trong một câu lệnh cập nhật MySQL?

  3. Datetime NOW PHP mysql (biến thể + PDO)

  4. Sao lưu lượt xem với Mysql Dump

  5. Hàm MySQL SHA2 dường như không hoạt động