Tạo web api bằng ef desginer from database không được trong asp.net mvc5?

Chào mọi người em đang học tạo web api trong asp.net.Em có tạo model bằng cái ADO.Net enity data model rồi chọn cái ef desginer from database.Em có hàm lấy tất cả sản phẩm trong api như sau:

public class SanPhamAPIController : ApiController
{
    [HttpGet]
    public IEnumerable<tblSanPham> GetAllSanPham()
    {
        WebBanHangEntities1 db = new WebBanHangEntities1();
        return db.tblSanPhams.ToList();

    }
}

Rồi khi em chạy trên postman thì nó lại không hiển thị ra được dữ liệu sản phẩm mà nó hiển thị lỗi như này ạ

Trong khi em dùng thằng linQ to SQL thì lại chạy ngon rất ok.Mọi người giúp em với ạ.

Bạn thử cách này xem :

   [HttpGet]
public IActionResult GetAllSanPham()
{
    WebBanHangEntities1 db = new WebBanHangEntities1();
    return Ok(db.tblSanPhams.ToList());
}

Bạn đã cấu hình context cho Db entity chưa, và config trong Startup.cs?

1 Like

Mình có dùng cách như bạn bảo nhưng mà không được với lại trong context có cầu hình Db rồi ạ còn cái startup.cs kia mình tìm k thấy có trong project ạ.

có thể trong WebBanHangEntities1 bạn có chứa 1 property WebBanHangEntities1 nào khác nên bị lỗi self referencing loop.

config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling 
= Newtonsoft.Json.ReferenceLoopHandling.Ignore;

thêm vào Configuration trong Program.cs hoặc WebApiConfig.cs là dc.

là config của .net core. còn của bạn là .net framework.

1 Like

Bạn ơi mình tạo cái model bằng database first thì lúc tạo mình có add hết tất cả các table vào thì chạy cái api không được nhưng khi mình chỉ add mỗi cái table sản phẩm thì nó lại chạy được.Bạn giải thích giúp mình chỗ này được không?

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