2014-03-25 84 views
1

我有一個有兩個表的數據庫。 第一個表包含第二個表中的外鍵。 在我的MVC項目中,我想顯示的值(存儲在第二個表),而不是 只有來自第一個表的ID ..從其他表中顯示值

在SSMS中,我可以通過連接完成此操作。但我怎麼在c#中做到這一點?

rec.Title = item.Title + " - " + item.AppointmentLength.ToString() + " mins" + " BehandlingsID " + ***item.BehandlingarId***; 

//

item.BehandlingarId包含我想改變到其對應的值的ID。

這是我的兩個tabeles:

public class AppointmentDiary 
    { 
     public int ID { get; set; }  

     public DateTime DateTimeScheduled { get; set; } 

     public Behandlingar Behandling { get; set; } 

     public int? BehandlingarId { get; set; } 
    } 


public class Behandlingar 
    { 
     public int BehandlingarId { get; set; } 
     public string Namn { get; set; } 
     public int Pris { get; set; } 
     public int Tid { get; set; } 
    } 



List<DiaryEvent> result = new List<DiaryEvent>(); 
       foreach (var item in rslt) 
       { 
        DiaryEvent rec = new DiaryEvent();      
        rec.EndDateString = item.DateTimeScheduled.AddMinutes(item.AppointmentLength).ToString("s"); 
        rec.Title = item.Title + " - " + item.AppointmentLength.ToString() + " mins" + " BehandlingsID " + item.BehandlingarId; 

       } 
+0

你可以發佈你實例化「item」的代碼嗎?從你有什麼,很難知道項目是一個DbContext或...?謝謝。 –

+0

謝謝,看看上面! 代碼來自一個免費的插件,所以我想它很好,把它發佈在這裏。 – user2915962

回答

1

你期待這樣的事情?

var result=AppointmentDiary.Where(i=>i.BehandlingarId==BehandlingarId).ToList; 

這會給你相匹配的BehandlingarIdAppointmentDiary

編輯記錄:如果你想反過來

如果DB是你的DataContext

var result=DB.Behandlingar.Where(i=>i.BehandlingarId == BehandlingarId).FirstorDefault().Nam; 

注: BehandlingarId這裏是AppointmentDiary外鍵。

說你要訪問的nam爲BehandlingarId = 1,則

var result=DB.Behandlingar.Where(i=>i.BehandlingarId == 1).FirstorDefault().Nam; 

會給你的BehandlingarId==1Behandlingar表匹配的第一個記錄

你可以把這個片段中的任何地方,你想訪問nam

希望這會有所幫助。

+0

謝謝你的回答!我想我想要另一種方式..我可以在AppointmentDiary表中獲取BehanligarID,但是我想從Behandlingar表中獲取記錄..其字符串Namn我想回來.. – user2915962

+0

@ user2915962請參閱已編輯回答 – ElectricRouge

+0

謝謝!我會試試這個! – user2915962