开发者

Where is EntitySet<T>'s "Results View"?

When looking at a linked EntitySet<T> of a LINQ to SQL mapped entity, I see the following:

Where is EntitySet<T>'s "Results View"?

I'd like to see the following (achieved by using the .AsQueryable() extension method) so that I can click the little refresh icon and see the content:

Where is EntitySet<T>'s "Results View"?

Why can't I see the Results View on a regular plain EntitySet<T>?

Also, I've noticed that on this MSDN page it says:

开发者_如何学Python

In LINQ to SQL, the EntitySet<TEntity> class implements the IQueryable interface.

From what I can see, EntitySet<TEntity> doesn't inherit from either IQueryable nor IQueryable<T>. So what's up with that claim?


You'll find the answer to this question

The results view only works for collections which meet the following conditions

  1. Implement IEnumerable or IEnumerable (VB.Net only works for IEnumerable)
  2. Do not implement IList, IList, ICollection or ICollection (C# restriction only)
  3. Do not have a DebuggerTypeProxy attribute
  4. System.Core.dll is loaded in the debugee process

In particular #2, EntitySet<T> implement's IList<T> therefore the debugger won't show a "Results View" option.

Using the AsQueryable extension method returns an object which only implements IQueryable and IEnumerable and therefore will show the "Results View" option.

You can read more about the #2 in the answer given in the other question.


The terminology on the page you reference may be a bit off - since both EntitySet and IQueryable derive from IEnumerable, if EntitySet implemented IQueryable directly then implementing IEnumerable would be redundant.

What AsQueryable() does is convert the EntitySet to an EnumerableQuery (as shown in your second image) - and only after that conversion is done can the result view be seen.

Since EntitySet only derives from IEnumerable, this makes sense - as Enumerators don't return sets but references to individual members in a set, in a sequential order.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜