Sql server 如何在不重复的情况下编写条件(如果数据存在)LINQ语句?

Sql server 如何在不重复的情况下编写条件(如果数据存在)LINQ语句?,sql-server,linq,Sql Server,Linq,我需要编写一个Linq查询,其中的条件如下: 当数据存在时,连接将是内部连接 当数据不存在时,联接将是左联接 boolfexists=db.Users.Any(u=>u.id==1); 可查询查询; if(ifexists==true) { query=我的内部连接linq; 查询=从查询中的s选择s; 返回query.ToList(); } 其他的 { query=my left join linq; 查询=从查询中的s选择s; 返回query.ToList(); } 现在我怎么写这个

我需要编写一个Linq查询,其中的条件如下:

  • 当数据存在时,连接将是
    内部连接
  • 当数据不存在时,联接将是
    左联接

boolfexists=db.Users.Any(u=>u.id==1);
可查询查询;
if(ifexists==true)
{
query=我的内部连接linq;
查询=从查询中的s选择s;
返回query.ToList();
}
其他的
{
query=my left join linq;
查询=从查询中的s选择s;
返回query.ToList();
}

现在我怎么写这个Linq?有没有办法在一个
linq
语句中编写此linq?我不想写两次linq?

在对数据库进行评估之前,您可以有条件地在
IQueryable
上编写此linq-这将允许您至少部分干涸分支不同分支上的常见操作:

var query = db.SomeTable
    .AsQueryable() // Not needed if `db.SomeTable` is already a Queryable
    .Where(x => ** common predicates on x ** ));
    // NB : Do not materialize here!

if(exists) // Don't need == true
{
     query = query
      .Where(x => ** branch 1 predicates **));
}
else
{
     query = query
      .Where(x => ** branch 2 predicates **);
}
return query
  .Select(q => ** common fields to project **)
  .OrderBy(q => ** common ordering **)
  .ToList(); // Materialize right at the end
你想那样吗

bool ifexists =  db.Users.Any(u => u.id== 1);

var query=ifexists==true ? (my inner join linq) : (my left join linq);

return query.ToList();

Thnaks@Abu Huzaifa
bool ifexists =  db.Users.Any(u => u.id== 1);

var query=ifexists==true ? (my inner join linq) : (my left join linq);

return query.ToList();
   First create object of of database Context named **Objcontext** 
    now hold the variable in var the query would be like following 




 var Result = from a in Objcontext.tbl1  where !Objcontext.tbl2.Any(m=>(m.sid==a.aid)&&(m.mid==80))
    select a; 



 If data is exists in the databse it will cheack using !Objcontext 
    I hope it will helpfull