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
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