问题描述
在EntityFramework怎么实现多表连接模糊查询,我在查询的时候在后台是拼接的SQL然后再怎么操作啊?代码如下StringBuilderstrSql=newStringBuilder("selectDraftInfo.Id,DraftInfo.typeId,DraftInfo.title,DraftInfo.Contant,DraftInfo.MainWords,DraftInfo.DraftStartDate,DraftInfo.status,TypeInfo.TypeNamefromDraftInfo,TypeInfowhereDraftInfo.typeId=TypeInfo.Id");if(!string.IsNullOrEmpty(draftType)){strSql.Append(string.Format("andDraftInfo.typeId={0}",draftType));}if(!string.IsNullOrEmpty(title)){strSql.Append(string.Format("andDraftInfo.titlelike'%{0}%'",title));}if(!string.IsNullOrEmpty(mainWords)){strSql.Append(string.Format("andDraftInfo.MainWordslike'%{0}%'",mainWords));}stringstrSqlResult=strSql.ToString();
解决方案
解决方案二:
varq=db.DraftInfo.asqueryable();if(!string.IsNullOrEmpty(draftType)){q=q.where(a=>a.typeId=draftType);}其他同上
解决方案三:
能说的清楚点吗?我是通过SQL来拼接查询的,最总拼接的SQL该如何处理啊?
解决方案四:
varq=fromaindb.table1frombindb.table2wherea.id==b.idselectnew{id1=a.id,id2=b.id};if(!string.IsNullOrEmpty(title)){q=q.where(c=>c.title.contains(title));//like}returnq.toList();如果是mvc的话传到view需要视图model
解决方案五:
我不是想知道linqtoEntity多表的查询语法是怎么写的;我做的是个模糊查询的功能,所以我根据条件先判断之后进行的SQL拼接,然后执行出来的结果保存起来。
解决方案六:
解决方案七:
楼上两位说的都是对一个对象(一个表)进行的查询,如果是像我上面所示的,是两个表连接查询呢?
解决方案八:
varq=fromaindb.table1frombindb.table2骚年这是两个表啊
解决方案九:
vartest=fromdinm_dbEntity.DraftInfofromtinm_dbEntity.TypeInfowhered.typeId==t.Idselectnew{id=d.Id,typeName=t.TypeName,draftType=d.typeId.ToString()};if(!string.IsNullOrEmpty(draftType)){test=test.Where(c=>c.draftType.Contains(draftType));}vara=test.ToList();按照楼上说的写了,但是报个错:LINQtoEntityies不识别方法“system.String.ToString()”,因此该方法无法转换成存储表达式。
解决方案十:
骚年这都说了不识别toString你还写进去作甚
解决方案十一:
vartest=fromdinm_dbEntity.DraftInfo.ToList()fromtinm_dbEntity.TypeInfo.ToList()whered.typeId==t.Idselectnew{id=d.Id,typeName=t.TypeName,draftType=d.typeId.ToString()};
解决方案十二:
引用10楼q107770540的回复:
vartest=fromdinm_dbEntity.DraftInfo.ToList()fromtinm_dbEntity.TypeInfo.ToList()whered.typeId==t.Idselectnew{id=d.Id,typeName=t.TypeName,draftType=d.typeId.ToString()};
这不是连接查询了吧