【发布时间】:2012-06-22 15:11:41
【问题描述】:
我有这个代码:
IEnumerable<string> q = customers /*EF entity*/
.Select (c => c.Name.ToUpper())
.OrderBy (n => n)
为了选择实体,ObjectContext 实际上创建了 ObjectQuery,它 实现 IQueryable。从 ObjectQuery 返回的对象不是 普通对象,但 EntityObject
但是如果我写:(注意var)
var q = customers /*EF entity*/
.Select (c => c.Name.ToUpper())
.OrderBy (n => n)
可以判断为ienumerable或iqueryable:
因为ObjectQuery 也实现了IEnumerable...
我不知道是否有任何具体信息告诉编译器“使用 A 而不是 B。A 更具体......”(必须有......我只是找不到它)
有什么帮助吗?它怎么知道使用A ||乙?
【问题讨论】:
-
判断 var 在 Visual Studio 中使用的类型的一种简单方法是将鼠标悬停在 var 关键字上,然后弹出窗口会告诉您它是什么类型。 C# in Depth 有一个很好的部分解释了类型推断在 C# 中的工作原理。
-
@EricAndres 我有 resharper,它做得更好:)...我只是想了解这个决定是如何做出的 :).. 谢谢人
标签: c# .net entity-framework .net-4.0 iqueryable