使用linq to sql或者EF的遇到的一些常见问题
10年了 感觉一塌糊涂,思考问题的敏锐度不行
1、contextItem.Where(item => { return true });
这样写是不行的。
所以说对于复杂的子查询是不行的,必须写sql,以班级为主表查询是否有这名同学的信息
解决方案
写sql 进行查询
List<UI_DrugTable> ret1 = yuhongxiadataEntities .Database.SqlQuery<UI_DrugTable>(sql2, new List<object>().ToArray()).ToList();
这个点,微软很SB,你想啊,这不是为老太太设计的吗?稍微有点脑子,我做点逻辑怎么了 。
2、
Database.SqlQuery<UI_DrugTable> 在执行过程中,里面的属性全是空的,怎么办?
UI_DrugTable的定义如下
public class UI_DrugTable { public Guid DrugId ; public string DrugEnglishName; public string DrugCommodityName ; public string DrugCommonName ; }
改造方案,将属性加 get;set即可
public class UI_DrugTable { public Guid DrugId { get; set; } public string DrugEnglishName { get; set; } public string DrugCommodityName { get; set; } public string DrugCommonName { get; set; } }
3、这行代码报错,说找不到类型
var exp=string.IsNullOrWhiteSpace(DrugCommodityName)?i=>true:i=>i.DrugCommodityName==DrugCommodityName;
我该怎么办?
不知道:
如果有方案,请维护到下面
Expression<Func<IngredientTable, bool>> where1 = string.IsNullOrWhiteSpace(IngredientCNName) ? i => true : (Expression<Func<IngredientTable, bool>>)(i => i.IngredientCNName.Contains(IngredientCNName));
这是在网上找的方案,需要做转化
做一次强转化
无法确定条件表达式的类型,因为'lambda expression'和'lambda expression'之间没有隐式转换 - 漫思 - 博客园 (cnblogs.com)
4、automapper 如何转义 list泛型的模式,已经不相同类型的转换
目前没有方案,不知道怎么弄
5、将linq to sql的东西接口化该如何划分
目前没有方案 不知道怎么弄
6、include的场景是什么,什么时候用include的。
目前脑子里不清晰
7、如何使用EF模型
下面是我的总结,在asp.net mvc中如何使用EF
EF 环境配置教程 - 漫思 - 博客园 (cnblogs.com)
漫思