2016-08-15 15 views
0

私は、この顧客の次の日付を取得する予定表からこのクエリを取得します。次の利用可能な日付を返すSQLite Entity Frameworkクエリ

from customer in db.Customers 
from order in db.Appointment 
    .Where(o => customer.CustomerId == o.CustomerId) 
    .DefaultIfEmpty() 
Select new {NextAppointment = "How to get this date?"} 

クラスAppointment

public class Appointment 
{ 
    public long Id { get; set; } 
    public string AppointmentInstructorName { get; set; } 
    public DateTime LessonDate { get; set; } 
    public long CustomerID {get; set;} 
    public string AppointmentLessonAddress { get; set; } 
} 

クラスCustomer

public string FirstName; 
    public string LastName; 
    public string Suburb; 
    public string NextAppointment; 
    public string Mobile; 
    public string DrivingLicenceNo; 

    public string Name 
    { 
     get { return $"{FirstName} {LastName}"; } 
    } 

    public int ID; 
顧客のサインアップは、彼らはレッスンの講師に対しての時間が与えられます

、および家庭でページ、次の利用可能な予定を表示したい

- 更新日 -

これは私が書いたものです。これはパフォーマンスに影響するのでしょうか?どのように私は、予定表から

var obj = (from a in Appointment 
    orderby a.LessonDate ascending 
    where a.LessonDate>= DateTime.Now 
    select a); 

    var d = (from c in Customer 
    join o in obj on c.ID equals o.CustId into ps 
    from o in ps.DefaultIfEmpty() 
    select new { c, o.LessonDate}); 
+0

日付と時間の文字列?それは照会のような面倒です! –

+0

これは初めてsqliteで遊んでいて、どのように動作するのかわからなかったが、datetimeのように扱うことができる(私はそれを反映するようにモデルを変更する)。 – Baahubali

答えて

0

をトップ1を得たことができますが、まだ見つけることがこれで作業しました:

`Appointment`は1` DateTime`プロパティの代わりに、これらの厄介なを持っていないのはなぜ
var s = (from i in Customer 
let p = Appointment.Where(p2 => i.ID == p2.CustId && p2.LessonDate >= DateTime.Now).OrderBy(ta => ta.LessonDate).FirstOrDefault() 
select new 
{ 
i, p.LessonDate 
}); 
関連する問題