Lỗi Does not contain a definition for and no extension method accepting a first argument of type could be found

Ảnh trên là lỗi mình gặp phải trong project mình làm lại từ project cũ nhưng project cũ ko bị lỗi như vậy ạ. Ảnh dưới

Khác biệt giữa 2 project là project cũ (Ko bị lỗi) mình dùng entities và tạo database trên VS luôn.
Còn project mới(mình copy từ project cũ phần model - view - controller ) mình dùng EF kết nối với mssql 2014 bên ngoài.

Mọi người giúp mình với ạ!

Chào bạn,

Theo thông báo lỗi thì Visual Studio không tìm được khai báo về method NhaCungCap trong model của bạn. Có một vài khả năng có thể xảy ra trong trường hợp này:

  • Việc chuyển đổi từ project cũ sang project mới bị lỗi. Theo lý thuyết, các phiên bản Visual Studio (VS) mới hơn thường có khả năng tương thích ngược và có thể chuyển đổi các project từ các phiên bản cũ sang phiên bản hiện tại. Tuy nhiên, trong thực tế, quá trình này không phải lúc nào cũng trơn tru. Kết quả là bạn sẽ vẫn mở được project cũ, nhưng nó lại không làm việc như ý muốn.
  • Entity Framework (EF) trong project cũ của bạn và trong bản VS bạn đang dùng là các phiên bản khác nhau và có cách sinh mã khác nhau. Vì vậy, VS không tìm được tham chiếu đúng về model của bạn. Tôi có thử search nhưng chỉ tìm được một câu trả lời ở đây: https://social.msdn.microsoft.com/Forums/en-US/d2613924-b2bf-48eb-a518-94bbaebc1ef4/help-with-entity-framework-db-first?forum=adodotnetentityframework . Bạn có thể thử xem có giải quyết được không.

Trong trường hợp xấu nhất, bạn phải tạo lại (regenerate) các entity. Tuy nhiên, bởi vì bạn đã có sẵn CSDL nên bạn không thể dùng phương pháp Code First mà phải dùng Database First. Và cách này cũng không đơn giản.

Đây cũng là một trong những lý do tôi không thích các ORM (Hibernate, EF, etc.). Theo quan điểm cá nhân tôi, khi dùng ORM, bạn không những phải biết rõ về ORM mà còn phải biết rõ về SQL. Và thế là bạn phải đối diện với 2 vấn đề thay vì 1.

6 Likes

Cảm ơn bạn nhiều nhé!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?