ฉันมีแบบสอบถาม linq นี้:
private void GetReceivedInvoiceTasks(User user, List<Task> tasks)
{
var areaIds = user.Areas.Select(x => x.AreaId).ToArray();
var taskList = from i in _db.Invoices
join a in _db.Areas on i.AreaId equals a.AreaId
where i.Status == InvoiceStatuses.Received && areaIds.Contains(a.AreaId)
select new Task {
LinkText = string.Format(Invoice {0} has been received from {1}, i.InvoiceNumber, i.Organisation.Name),
Link = Views.Edit
};
}
มันมีปัญหาแม้ว่า ฉันกำลังพยายามสร้างงาน สำหรับงานใหม่แต่ละครั้งเมื่อฉันตั้งค่าข้อความลิงก์เป็นสตริงคงที่เช่น "สวัสดี" ก็ใช้ได้ อย่างไรก็ตามข้างต้นฉันกำลังพยายามสร้างลิงก์คุณสมบัติโดยใช้คุณสมบัติของใบแจ้งหนี้
ฉันได้รับข้อผิดพลาดนี้:
base {System.SystemException} = {"LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.String Format (System.String, System.Object, System.Object)' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ที่เก็บได้" }
ใครทราบสาเหตุ? ใครทราบวิธีอื่นในการทำเช่นนี้เพื่อให้ได้ผล?