首页 > 其他分享 >ef6 拼接where查询条件

ef6 拼接where查询条件

时间:2023-07-13 14:12:26浏览次数:35  
标签:case Name where db ef6 拼接 var expression Id

Expression<Func<RecipeInfo, bool>> expression = t => true;
expression = expression.And(p => p.IsEfjective==0);
switch (type)
{
case 0:
expression = expression.And(p => p.FilePath.Contains(value));
//queru.Where(p => p.FilePath.Contains(value)) ;
break;
case 1:
expression = expression.And(p => p.Id == Convert.ToInt64(value));
break;
case 2:
expression = expression.And(p => p.DeviceId == Convert.ToInt64(value));
break;
case 3:
expression = expression.And(p => p.LayerId == Convert.ToInt64(value));
break;
case 100:
expression = expression.And(p => true);
break;
}
if (UnitId != 0)
{
expression = expression.And(p => p.UnitId == UnitId);
}
//List RecipeInfoListEntityList = new List();
RecipeInfoListEntity RecipeInfoListEntityList = new RecipeInfoListEntity();
var db= this.BaseRepository().DB.dbContext;
var RecipeInfoDB = db.Set();
var LayerDB = db.Set();
var DeviceDB = db.Set();
var UserDB = db.Set();
var UserDB2 = db.Set();

            var queru = from a in RecipeInfoDB.Where(expression)
                        join b in LayerDB on a.LayerId equals b.Id  
                        join c in DeviceDB on a.DeviceId equals c.Id
                        join e in UserDB on a.BaseCreatorId equals e.Id
                        join f in UserDB2 on a.BaseModifierId equals f.Id  orderby a.BaseCreateTime descending
                        select new RecipeInfoListEntity
                        {
                            Id = a.Id.Value,
                            Name = a.Name,
                            BaseModifierId = a.BaseModifierId,
                            BaseModifyTime = a.BaseModifyTime,
                            BaseCreatorId = a.BaseCreatorId,
                            BaseCreateTime = a.BaseCreateTime,
                            deviceName = c.Name,
                            deviceID = c.Id.ToString(),
                            TechniqueName = b.TechniqueName,
                            TechniqueId = b.Id.ToString(),
                            Tag = a.Tag,
                            Comment = a.Comment,
                            InspectionMode = a.InspectionMode.ToString(),
                            FilePath = a.FilePath,
                            Image = a.Image,
                            Revision = a.Revision,
                            Executable = a.Executable,
                            ModuleType = a.ModuleType.ToString(),
                            //UnitName = a.UnitName,
                            UnitId = a.UnitId,
                            WaferSize = a.WaferSize.ToString(),
                            BaseCreatorName = e.Name,
                            BaseModifierName = f.Name,
                            IndexNumber = b.IndexNumber,
                            Isupload = a.Isupload,
                            GrounpId = a.GrounpId.Value,
                            //isChecked = a.isChecked,
                            ImageMD5 = a.ImageMD5,
                            recipeInfo = new RecipeInfo(),
                            recipeInfoBaseEntity = new RecipeInfoBaseEntity(),
                            recipeName = a.Name
                        };
            //into temp
            //where temp.FilePath == "1" select temp;
            //expression = expression.And(t => t.AAA == 1);
            //expression = expression.And(t => t.BBB > 1);
            
            //queru.OrderBy(p=>p.BaseCreateTime);


            var joinfdatabase = await queru.ToListAsync();
            return joinfdatabase as List<RecipeInfoListEntity>;

标签:case,Name,where,db,ef6,拼接,var,expression,Id
From: https://www.cnblogs.com/kfjdy/p/17550284.html

相关文章

  • 京东面试官问:LEFT JOIN关联表中用ON还是WHERE跟条件有什么区别
    之前有码友去京东面试,被问到LEFTJOIN关联表中用ON还是WHERE跟条件有什么区别,很快就答出来了,可是追问什么原因造成这一情况的,一时没回答上来。下面说说,想通过AleftBjoinonand后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。后来发现joinonand不会过......
  • C++黑马程序员——P189-192. string容器 构造函数,赋值,拼接,查找和替换
    P189.string容器——构造函数P190....——赋值操作P191....——字符串拼接P192....——字符串查找和替换P189.构造函数———————————————————————————————————————————————————————————————......
  • 语法-where
    在MySQL中,WHERE是一种用于查询数据的子句(clause)。它被用于在SELECT、UPDATE、DELETE等语句中指定一个条件,以过滤出符合条件的数据。WHERE子句可以根据指定的条件对表中的数据进行过滤。只有满足条件的记录才会被包含在查询结果中。在使用WHERE子句时,您可以使用各种比较运算符、......
  • CSharp的Where底层实现
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net.Http;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;//命名空间namespacepro01{//类internalclassProgram{//main方法......
  • mysql的update更新及delete删表记录where不带索引字段导致死锁
    为什么会发生这种的事故?InnoDB存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问题,所谓的幻读是指在同一事务下,连续执行两次同样的查询语句,第二次的查询语句可能会返回之前不存在的行。因此InnoDB存储引擎自己实现了行锁,通过......
  • AcWing,第108场周赛T3 拼接数组
    AcWing,第108场周赛T3前置知识:P1115最大子段和的dp和线段树作法分析:对于一个数组,可以直接求出最大字段和,但由于多个数组拼接在一起,没有办法直接求得拼接数组的最大字段和。求最大字段和我已知有两种方法:dp线段树先对每一个数组用线段树求出最大前缀和,最大字段和,最大后缀......
  • EveryWhereIsSparserThanWhole(Construction)
    [ARC161D]EverywhereisSparserthanWhole(Construction)构造题,重在思路,代码不难。考虑有一个性质,既然部分比整体更稀疏,那么需要每个点的入度都\(>d\),因为这样删去之后\(\div(n-1)\)才会减小。形式化的说,需要满足\[记cnt=\min(度_i(1\lei\len))\\d>\dfrac{nd-cnt}{n......
  • C# opc ua客户端实例源码,带ef6+sqlite
    C#opcua客户端实例源码,带ef6+sqlite。代码有完整的注解,及包括所有的链接库和程序结构思维图。纯学习资料原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/638904489888.html......
  • 【Python&RS】基于GDAL镶嵌拼接遥感影像
    ​    没啥好说的,处理高分辨率影像时,数据高达几十G。用ENVI或者ArcGIS进行影像的拼接时,往往会出现未响应的情况。出现未响应的话,运气好等个一晚上可能会动一动,运气不好就等着强制关闭重做吧。        所以搞了一个Python进行拼接操作的代码,虽然速度不算快,但至......
  • C语言snprintf追加拼接字符串
    原文地址:https://www.cnblogs.com/liqinglucky/p/snprintf.html在使用log函数打印时想打印整个结构体的值出来,但是结构体比较大,如果用log函数一行一行打印显示效果不好。就想用snprintf追加拼接字符串到一个buffer里,最后再把整个buffer打印出来。这样可以方便的调整buffer里的内......