Sql server 如何在不重复的情况下编写条件(如果数据存在)LINQ语句?
我需要编写一个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(); } 现在我怎么写这个
- 当数据存在时,连接将是
内部连接
- 当数据不存在时,联接将是
左联接
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