I switched laptops at work and had to recreate the test database for one of my projects. No problem. I dragged the DB table back over into my LINQ designer, but now when I run my code...
testcmsDataContext db = new testcmsDataContext();
IQueryable<cmschange> query = db.cmschanges;
I'm getting a bizarre error.
CS0029: Cannot implicitly convert type 'System.Data.Linq.Table<LINQDAL.CmsChanges.cmschange>' to 'System.Linq.IQueryable<cmschange>'
I've tried working around this, but without success, and not only was this code (and two others apps) working beautifully before, Table<TEntity> implements IQueryable<TEntity>. There shouldn't be a problem here.
Several blogs and forums pointed out import problems but I'm using System.Linq, System.Data.Linq, and System.Linq.Dynamic.
Did the new regeneration kill your namespaces?
[this is why we source control the generated files too]
Exactly right. I set up SQL Server created the DB, and upgraded my namespaces to make it easier to transition new iterations from test to production. However, I had so many problems configuring SQL Server (it took a couple weeks, two installs, a and hard drive reformat), that I forgot I'd made that change. The original dbml was in App_Code, so it was still accessible. I rebuilt the production code to run from LINQDAL.CmsChanges, deleted the files in App_Code and then the test files were no longer confused.