ฉันมีเอนทิตีที่เรียบง่าย: ติดต่อ
บรรทัด DBContext:
public DbSet<Contact> Contacts { get; set; }
ตัวควบคุม API:
[HttpGet]
public IQueryable<Contact> Contacts()
{
return _contextProvider.Context.Contacts;
}
ในการดึงข้อมูลในไคลเอนต์ Breeze ฉันทำสิ่งนี้:
var query = EntityQuery.from("Contacts")
.orderBy(orderBy.obContact)
มันใช้งานได้ดี และฉันเข้าใจได้ว่าพารามิเตอร์ from "ผู้ติดต่อ" จะต้องตรงกับวิธีการทำงานของ API
ใน getByID ของฉัน ฉันทำสิ่งนี้:
return manager.fetchEntityByKey("Contact", contactId, true)
ใช้งานได้ดีและยังทำการเรียกเมธอด API "ผู้ติดต่อ" อีกด้วย แต่ฉันอยากรู้ว่า Breeze ใช้พารามิเตอร์ "ติดต่อ" อย่างไรและรู้ว่าจะเรียกวิธี "ผู้ติดต่อ"
สิ่งนี้อยู่ในข้อมูลเมตาหรือไม่
มันมาจากบรรทัด DBSet ของฉันใน dbcontext ของฉันหรือไม่ (ฉันคิดว่าเป็นเช่นนั้น แต่ต้องการการยืนยัน) ถ้าเป็นเช่นนั้นทั้งสองชื่อก็ต้องเท่ากันใช่ไหม?
[HttpGet]
public IQueryable<Contact>Contacts() // The HTTP action method name
public DbSet<Contact> Contacts { get; set; } // The DbSet variable
ฉันลองการเปลี่ยนแปลงเหล่านี้:
public DbSet<Contact> DBSetContacts { get; set; }
และ
[HttpGet]
public IQueryable<Contact> Contacts()
{
return _contextProvider.Context.DBSetContacts;
}
แบบสอบถามแรกของฉันด้านบนที่ส่งคืนอาร์เรย์ทำงานได้ดี การดึงข้อมูลด้วย ID ของฉันล้มเหลว พยายามค้นหาทรัพยากร URI "DBSetContacts"
ข้อสรุปของฉันคือตัวแปร DbSet ต้องมีชื่อเดียวกันกับวิธี URI เพื่อให้ fetchByID ทำงาน ถูกต้องไหม?