0

私はLinqを使用していて、それを使い始めたばかりです。単一のテーブルを使用していたときにグリッドビューにデータが入力されていましたが、現在、クライアント情報テーブルからクライアントの名を結合しようとしています。

エラーは、Event_Setup に ClientFirstName の定義が含まれていないことです。そのため、Client_Info ではなく Event_Setup テーブルをチェックしています。

public List<EventData> GetDetails()
    {
        using (EMSEntities db = new EMSEntities())
        {
            var context = from events in db.Event_Setup
                          join clients in db.Client_Info on events.ClientId equals clients.ClientId 
                        select events;

            List<EventData> newEvent = new List<EventData>();

            foreach (var e in context)
            {
                EventData test = new EventData();

                test.Event_Title = e.EventTitle;

//Error on e.ClientFirstName, Event Setup does not contain Definition
 (located in Client_Info table not Event Setup)
                test.Name = e.ClientFirstName;
                test.Start_Date = e.EventDateFrom;
                test.End_Date = e.EventDateFrom;



               newEvent.Add(test);                
            }
            return newEvent;
         }         
    }

ダル

public class EventData
{        
        public string Event_Title { get; set; }
        public string Name { get; set; }
        public DateTime? Start_Date { get; set; }
        public DateTime? End_Date { get; set; }            
}
4

2 に答える 2

1

clientsこのコードは、結合されたデータに対して何もしていません。選択しているだけであることがわかりますevents

var context = from events in db.Event_Setup
              join clients in db.Client_Info on events.ClientId equals clients.ClientId 
              select events;

その LINQ ステートメントから抜け出すと、それclientsはなくなります。データはマージされません。次のように、投影を行う必要があります。

var context = from events in db.Event_Setup
              join clients in db.Client_Info on events.ClientId equals clients.ClientId 
              select new EventData
              {
                  Event_Title = events.EventTitle,
                  Name = clients.ClientFirstName,
                  Start_Date = events.EventDateFrom,
                  End_Date = events.EventDateFrom
              };
于 2013-08-22T19:10:11.607 に答える
0

ありがとうございます

foreach (var e in context)
            {
                EventData test = new EventData();

                test.Event_Title = e.Event_Title;
                test.Name = e.Name;
                test.Start_Date = e.Start_Date;
                test.End_Date = e.End_Date;           

                newEvent.Add(test);                
            }
            return newEvent;
于 2013-08-22T19:27:25.027 に答える