2014-03-25 45 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