EntityFrameworkのIdに基づいてResourceNamesを取得したいのですが、エラーが発生します:「LINQtoEntitiesはメソッド 'System.String GetResourceNameById(Int32)'メソッドを認識せず、このメソッドをストア式に変換できません。」次のismyコード。
public string GetResourceNameById(int Id)
{
return _DBContex.Employees.Where(x => x.Id == Id).FirstOrDefault().FirstName;
}
public CygnusInternalResponseViewModel GetAllTimeEntriesForGrid(int start = 0, int perPage = -1, string sortColumn = "", string sortDirection = "")
{
List<TimeEntryViewModel> te = new List<TimeEntryViewModel>();
te = (from jb in _DBContex.TimeEntries
select new TimeEntryViewModel
{
Id = jb.Id,
ResourceId = (int)jb.ResourceId,
TicketId = (int)jb.TicketId,
WorkType = (WorkTypeCatalog)jb.WorkType,
HoursWorked = (float)jb.HoursWorked,
Status = (TimeEntryStatusCatalog)jb.Status,
Role = (RoleCatalog)jb.Role,
StartTime = (TimeSpan)jb.StartTime,
EndTime = (TimeSpan)jb.EndTime,
SummaryNotes = jb.SummaryNotes,
InternalNotes = jb.InternalNotes,
Contract = (DateTime)jb.Contract,
Date = (DateTime)jb.Date,
ResourceName = GetResourceNameById((int)jb.ResourceId) // ERRORR Line
}).ToList();
データベーステーブルのメモリ内表現を作成する必要がある場合があります。
public CygnusInternalResponseViewModel GetAllTimeEntriesForGrid(int start = 0, int perPage = -1, string sortColumn = "", string sortDirection = "")
{
List<TimeEntryViewModel> te = new List<TimeEntryViewModel>();
var query=_DBContex.TimeEntries.ToList();//create in-memory representation
te = (from jb in query
select new TimeEntryViewModel
{
Id = jb.Id,
ResourceId = (int)jb.ResourceId,
TicketId = (int)jb.TicketId,
WorkType = (WorkTypeCatalog)jb.WorkType,
HoursWorked = (float)jb.HoursWorked,
Status = (TimeEntryStatusCatalog)jb.Status,
Role = (RoleCatalog)jb.Role,
StartTime = (TimeSpan)jb.StartTime,
EndTime = (TimeSpan)jb.EndTime,
SummaryNotes = jb.SummaryNotes,
InternalNotes = jb.InternalNotes,
Contract = (DateTime)jb.Contract,
Date = (DateTime)jb.Date,
ResourceName = GetResourceNameById((int)jb.ResourceId)
}).ToList();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加