SampleDataContext db = new SampleDataContext(); Task task = db.Task.GetByKey(1);
/// <summary> /// The query extension class for Task. /// </summary> public static partial class TaskQueryExtension { /// <summary> /// Gets an instance by the primary key. /// </summary> public static Task GetByKey(this Table<Task> entity, int taskID) { if (entity.Context.LoadOptions == null) return Query.GetByKey.Invoke((SampleDataContext)entity.Context, taskID); else return entity.FirstOrDefault(t => t.TaskID == taskID); } /// <summary> /// Gets a query by an index. /// </summary> public static IQueryable<Task> GetByStatusID(this Table<Task> entity, int statusID) { if (entity.Context.LoadOptions == null) return Query.GetByStatusID.Invoke((SampleDataContext)entity.Context, statusID); else return entity.Where(t => t.StatusID == statusID); } #region Query /// <summary> /// A private class for lazy loading static compiled queries. /// </summary> private static partial class Query { internal static readonly Func<SampleDataContext, int, Task> GetByKey = CompiledQuery.Compile( (SampleDataContext db, int taskID) => db.Task.FirstOrDefault(t => t.TaskID == taskID)); internal static readonly Func<SampleDataContext, int, IQueryable<Task>> GetByStatusID = CompiledQuery.Compile( (SampleDataContext db, int statusID) => db.Task.Where(t => t.StatusID == statusID)); } #endregion }