Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架mvc5连接多个表和单个输出_C#_Sql_Asp.net_Linq - Fatal编程技术网

C# 使用实体框架mvc5连接多个表和单个输出

C# 使用实体框架mvc5连接多个表和单个输出,c#,sql,asp.net,linq,C#,Sql,Asp.net,Linq,我对linq查询非常陌生,所以我需要使用实体框架mvc5连接多个表和单个输出 下面是我的3个表结构,表_应用程序是一个主表 1表2应用程序 Id ApplicationName ServiceId ProductID 1 Myapp 1 1 2表2服务 ServiceId SName 1 S1 3表4产品 ProductID PName 1

我对linq查询非常陌生,所以我需要使用实体框架mvc5连接多个表和单个输出

下面是我的3个表结构,表_应用程序是一个主表

1表2应用程序

Id   ApplicationName    ServiceId     ProductID

1         Myapp           1               1
2表2服务

ServiceId     SName
  1             S1
3表4产品

ProductID     PName
  1             P1
  var IA = db.Applications
      .Where(x => x.ID == Id)
      .Select(IAview => new IAViewModel 
      {
          ApplicationName = IAview.ApplicationName


      }).ToList();
我需要linq列表中基于表\应用程序ID的linq out结果数据

ApplicationName   SName   PName
 Myapp             S1      P1
我的sql查询是这样的

select t1.ApplicationName,t2.SName,t3.PName from Table_Application t1,Table_Service t2,Table_Product t3 where t1.ServiceId =t2.ServiceId  and t1.ProductID=t3.ProductID and t1.Id="mysessionid"
我尝试使用单表,但无法加入table_服务和table_产品

ProductID     PName
  1             P1
  var IA = db.Applications
      .Where(x => x.ID == Id)
      .Select(IAview => new IAViewModel 
      {
          ApplicationName = IAview.ApplicationName


      }).ToList();

看一看LINQ查询语法——它类似于SQL,因此如果您来自这种背景,就更容易理解

有一个教程将为您提供一个基本的起点,然后您可以根据需要添加连接等

请注意,以下内容未经测试,将为您提供一个IAViewModel对象列表,但我认为您需要类似于以下内容的内容:

var a = (from app in db.Applications
join service in db.Services on app.ServiceId equals service.ServiceId
join product in sb.Products on app.ProductId equals product.ProductId
where app.Id == session_id
select new IAViewModel
{
    ApplicationName = app.ApplicationName,
    ServiceName = service.SName,
    ProductName = product.PName
}).ToList();

如果你只想从中得到一个结果,你可以省去.ToList,改为使用.FirstOrDefault

Hi@mahzar,你试过什么吗?你被卡在哪里了?我的桌子结构其他一些字段我应该发布我试过的吗?我用简单的语言解释@Jeroenh理想情况下,您发布了您尝试过的C代码,并解释了您的位置Stuck我已经编辑了我的问题,请检查并确认@Jeroenh可能的副本我会检查并得到你的答案@diliHow名称将选择t1.ApplicationName、t2.SName、t3.PName@DilipFirstOrDefault将选择所有列,或者您可以使用Linq select在mazharhow处过滤列以传递会话值@加雷斯Lewis@mazhar我已更新我的答案,以包括我要分配此视图模型的where子句请检查我的问题您的答案给出正确的列表,但要这样分配。选择IAView=>new IAViewModel@加雷斯Lewis@mazhar我已经更新了答案,以显示如何从LINQ查询中选择新的IAViewModel