本帖最后由 rija0026 于 2010-10-28 17:12:43 编辑

解决方案 »

  1.   

    1、不是很清楚,不过esql和sql一样吧,没有映射不能智能提示2、Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
       强类型查询的最简单写法了,强类型的话where肯定需要一个委托参数,或者说需要一个自定义的返回真假的函数,这个是省略很多要写的东西的函数定义,直接看Linq即可。3、先看linq,再看Data Entity Framework
      

  2.   


    ESql在项目中使用的多吗? 如果使用ESql的话, 和使用以前的拼凑Sql这样的方式, 仍然是让人头疼的,还得学习新的语法.
      

  3.   

    我没用过, Data Entity Framework 过于复杂,我一般都只是用linq to sql 而已
      

  4.   

    Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
    是Lambdar表达式。而lambda表达式是匿名delegete的简写。实际上Where需要的参数试一试delegate实例。
      

  5.   

    1:如果用了EF,建议少用esql,因为它的ORM关系已经跟你建议好了。
       当然也不是不能用,我一般在一引起非“对象”操作等特殊情况或对性能有特殊途径时使用。2:至于像Where和select等,这属于Linq的的概念,你得补一下.net 3-4的一些新特性方面的知识,与EF无关。
      

  6.   


    这个可以自己思考一下怎么写先的,
    Where("OwnerGuid == '974a055c25ee44e3ad1ca4f75d1ec7da'")
    这样明显不合适,回到原来的拼接SQL的概念了,强类型不应该这样。
    不过可以理解为需要一个返回逻辑型的值,
    那么什么东西可以返回逻辑型的值呢,函数咯,c语言就是函数指针的概念了,.net里有委托,就是要new一个有能返回逻辑值的方法的委托类
    Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
    只是简化了写法的语法糖,就是一个函数而已
    bool fun(推导出的类型 Owner){
     return Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da";
    }
      

  7.   

    Lambda表达式,去看看Lambda表达式你就彻底明白了。。Linq就是根据这个来的