OK, totally weird.  After not looking at it for a few days and then
endeavoring to put a complete, compilable example together for you,
I'm now not having the issue.

Sorry for the troubles.  Enjoy your vacation!

-Abe

On Thu, Jun 24, 2010 at 3:54 PM, Jonathan Pryor <[email protected]> wrote:
> On Thu, 2010-06-24 at 14:53 -0400, Abe Gillespie wrote:
>> I'll be the first to admit I'm no Linq genius (hardly), but I'm
>> thinking the deferred execution of the whole thing ultimately has the
>> "new" op showing up in the where clause.  If I have this right it's
>> essentially doing the following query:
>>
>> var me = from u in _db.Users
>>               where u.Status == "active" && new User(u).Name == "Abe"
>>               select new User(u);
>>
>> Don't worry, I'm using DI to send the database context into the
>> constructor.  I just threw the example together ... not even sure if
>> it would compile.
>
> Trying to get something that (1) compiles, and (2) actually hits the
> error you're encountering would be extremely helpful so that we're (1)
> on the same page wrt where the bug lies, and (2) can sanely discuss
> workarounds. :-)
>
> To the best of my knowledge, this:
>
>        userRepo.GetAll().Where(u => u.Name == "abe")
>
> should NOT result in creation of anything within the .Where()
> expression.
>
> For good measure, in order to better mimic what I *think* you're
> attempting to do, I wrote this:
>
>        class E {
>            public int ID;
>            public string Name;
>        }
>
>        [Test]
>        public void TESTME()
>        {
>            Northwind db = CreateDB();
>            var nancy = GetEmployees (db).Where (e =>
>                    e.Name == "Nancy Davolio")
>                .SingleOrDefault ();
>            Console.WriteLine (nancy.Name);
>        }
>
>        static IQueryable<E> GetEmployees(Northwind db)
>        {
>            return from e in db.Employees
>                where e.Region == "WA"
>                select new E {
>                    ID    = (int) e.EmployeeID,
>                    Name  = e.FirstName + " " + e.LastName,
>                };
>        }
>
> I believe this is vaguely close to what you did, in that we're taking
> the database types (Employee), selecting them into a user type (E), and
> then further querying that to select a specific entry ("nancy").
>
> This works as is, no exceptions generated.
>
> I would appreciate it if you could provide a compiling, valid, FAILING
> sample UNLESS the compiling+failing sample is close to my previous
> sample which has an explicit 'new' within the 'where'.
>
> Thanks,
>
>  - Jon
>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "DbLinq" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/dblinq?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"DbLinq" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/dblinq?hl=en.

Reply via email to