最近在研究.NET4.0中的Data Entity Framework, 有一些疑问向大家请教.

rija0026 2010-10-28 04:58:08

var departmentQuery = from tb_Document in docEdm.tb_Documents.Where(ownere => ownere.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
select new { tb_Document.TypeGuid, tb_Document.tb_DocType.NodeName };


1.使用ESql,能不能像使用LinqToEntity那样仍有智能感知?LinqToEntity性能感觉稍低一些.

2.上面的Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da"),这句话感觉好奇怪,看了半天,能够肤浅的理解到是什么意思,但一定要这么奇怪的写吗?
如果有子查询,或更复杂的杂件,应该怎么写呢?


3.重点:迫不及待想买一些有关 Data Entity Framework 4 的中文书籍,请推荐下, 网上找的<Pro Entity Framework 4.0>只有英文版,看着很费劲.
...全文
165 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveyan52112 2010-10-29
  • 打赏
  • 举报
回复
Lambda表达式,去看看Lambda表达式你就彻底明白了。。Linq就是根据这个来的
hztltgg 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rija0026 的回复:]
引用 5 楼 findcaiyzh 的回复:

Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
是Lambdar表达式。而lambda表达式是匿名delegete的简写。

实际上Where需要的参数试一试delegate实例。


应该怎么写呢?不是很懂, 能否给一段简单的代码
[/Quote]

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

Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
是Lambdar表达式。而lambda表达式是匿名delegete的简写。

实际上Where需要的参数试一试delegate实例。
[/Quote]

应该怎么写呢?不是很懂, 能否给一段简单的代码
showjancn 2010-10-29
  • 打赏
  • 举报
回复
1:如果用了EF,建议少用esql,因为它的ORM关系已经跟你建议好了。
当然也不是不能用,我一般在一引起非“对象”操作等特殊情况或对性能有特殊途径时使用。

2:至于像Where和select等,这属于Linq的的概念,你得补一下.net 3-4的一些新特性方面的知识,与EF无关。
宝_爸 2010-10-29
  • 打赏
  • 举报
回复
Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
是Lambdar表达式。而lambda表达式是匿名delegete的简写。

实际上Where需要的参数试一试delegate实例。
hztltgg 2010-10-29
  • 打赏
  • 举报
回复
我没用过, Data Entity Framework 过于复杂,我一般都只是用linq to sql 而已
rija0026 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hztltgg 的回复:]

1、不是很清楚,不过esql和sql一样吧,没有映射不能智能提示
[/Quote]

ESql在项目中使用的多吗? 如果使用ESql的话, 和使用以前的拼凑Sql这样的方式, 仍然是让人头疼的,还得学习新的语法.
hztltgg 2010-10-29
  • 打赏
  • 举报
回复
1、不是很清楚,不过esql和sql一样吧,没有映射不能智能提示

2、Where(Owner=> Owner.OwnerGuid == "974a055c25ee44e3ad1ca4f75d1ec7da")
强类型查询的最简单写法了,强类型的话where肯定需要一个委托参数,或者说需要一个自定义的返回真假的函数,这个是省略很多要写的东西的函数定义,直接看Linq即可。

3、先看linq,再看Data Entity Framework
rija0026 2010-10-29
  • 打赏
  • 举报
回复
这贴为什么这么冷?
rija0026 2010-10-29
  • 打赏
  • 举报
回复
谢谢 hztltgg

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧