C# LINQ to SQL Chat Dec 12, 2006

 

Charlie MSFT (Moderator):
A: We'll be starting in just a couple minutes.
Dinesh Kulkarni[MS] (Expert):
I am the program manager for LINQ to SQL. My blog (lately dormant) is at https://blogs.msdn.com/dinesh.kulkarni/ My rap sheet at MS includes DataSet and ObjectSpaces (sigh!)
Terry - MSFT (Expert):
Hi, I'm Terry Adams and I'm the Dev Lead for LINQ to SQL. I've been on the team for about 1 year.
Charlie MSFT (Moderator):
A: My name is Charlie Calvert and I'm Community PM for C# (https://blogs.msdn.com/charlie)
Mathew [MSFT] (Expert):
I'm a developer on the LINQ to SQL team
Keith Farmer [MSFT] (Expert):
I'm Keith Farmer, dev on LINQ to SQL.
Cyrus - MS (Expert):
I'm Cyrus, I put the dot in VS.Net
Jay Hickerson MS (Expert):
Hi, I'm Jay Hickerson, a tester on the O/R Designer.
Charlie MSFT (Moderator):
So let's go ahead and get started. We have lots of experts here, send us your questions and we will begin answering them.
Matt Warren [MSFT] (Expert):
Hi, I'm the architect of the LINQ to SQL product and co-designer of LINQ. I also have background in ADO, ADO.Net, XML.Net, ObjectSpaces, and C-Omega

Mike Pizzo[MS]: Hi, My name is Mike Pizzo and I’m an architect in the Data Programmability team.  I’ve worked on Data Access APIs at Microsoft for over 15  years, starting with ODBC and including OLE DB, ADO, ADO.NET, and now the ADO.NET Entity Framework in Orcas.

Charlie MSFT (Moderator):
We are here to talk about LINQ, and related technologies, so go ahead and fire away with your LINQ questions.
Charlie MSFT (Moderator):
The focus in this chat is LINQ to SQL, but we can probably handle most LINQ related questions.
Matt Warren [MSFT] (Expert):
Q: Can you go ahead and explain, then, specifically what LINQ to SQL is, functionally, and how it relates in with the larger LINQ specification?
A: LINQ to SQL is both an implementation of LINQ over relational databases and entry level ORM. The primary focus of LINQ to SQL is to enable query and object life-time management over objects that are tied to database persistence. LINQ to SQL tackles this problem from the low-end up, ensuring first that most database schemas can be mapped to objects, as opposed to attempting to map all objects to database schemas.
Dinesh Kulkarni[MS] (Expert):
Q: Do you plan to extend the DLINQ designer with the ability to add attributes to fields? For example: attributes of Validation Block, etc?
A: Are you looking for custom attributes that you want to put in, or something else? The designer currently only generates mapping attributes.

Currently we do not plan to add custom attrib for classes/members. I had posted to the LINQ forum (and other places) asking for scenarios where custom attributes (not global ones like those that are debugger-related) are used but did not get much response. We have not prioritized the feature since then. Please let us know what attributes/uses you have in mind. Thanks.
Mathew [MSFT] (Expert):
Q: If you specify your own Update, Insert and Delete methods for an instance type, can you call the LINQ to SQL's native SQL generated implementation from those methods? (ie. like call SubmitChanges() again but bypass your implementation)
A: No - When you call SubmitChanges, we will call your CUD method, so that would result in an infinite loop.
Dinesh Kulkarni[MS] (Expert):
Q: For most user interface / database applications, will the LINQ to SQL syntax be used for production applications instead of writing insert/update/select/delete commands?
A: That is what we are working on enabling and that is a productivity booster that we want to make available. Its use is up to you :-)

Matt Warren [MSFT] (Expert):
Q: For the Query Expression syntax, why was the Distinct keyword left out? IMHO it’s a more popular keyword and I'm finding having to append it as an extension to the end of each query a little untidy. e.g. var [p] = from [q] in [w] where [x] select distinct [y];
A: Honestly, we had to cut it off at some point.
Mathew [MSFT] (Expert):
Q: Will SQLMetal ship in Orcas in addition to the Visual Designer (currently DLINQ Object)? We need SQLMetal for automated builds. (no offence Jay the O/R mapper is great, just difficult to automate)
A: Yes, we will be releasing SqlMetal as part of the Windows SDK
Dinesh Kulkarni[MS] (Expert):
Q: What is the status of the December Orcas beta?
A: LINQ to SQL features are limited to basic query support. So we suggest you stick to May LINQ CTP until Feb 07 Orcas CTP for LINQ to SQL.
Terry - MSFT (Expert):
Q: Working with DLINQ Designer I think that it should have the ability to get new versions of a table from a connected database.
A: This is a good suggestion. Would you expect the class definition to change for your entity class anytime you open up the designer?
AmandaS [MSFT] (Expert):
Hello all... Sorry I'm a little late. My name is Amanda Silver and I'm the lead program manager for Visual Basic.
Matt Warren [MSFT] (Expert):
Q: Will the next CTP provide better support for object inheritance on mapped classes? I want a base class that all my entities extend from, that need to be persisted -- it's just for plumbing code.
A: You can derive your entities from any base class you want. However, that common across-entity base class cannot be part of the persisted/mapped hierarchy.
Dinesh Kulkarni[MS] (Expert):
Q: Will the Orcas release have any LINQ to SQL support for Validation in addition to what is or is not there now? (Like an Errors collection and binding to the ErrorProvider.)
A: Yes. We are planning to let you write your validation logic for property setters and entire entities using private optimized events in VB and there is a partial methods feature planned in C#.
Terry - MSFT (Expert):
Q: Is there a target date for when a production version of LINQ for SQL will be released?
A: LINQ for SQL will ship with the Visual Studio Orcas release.
Matt Warren [MSFT] (Expert):
Q: The LINQ to SQL C# documentation that shipped with the May beta was fantastic (kudos to the author(s)). At the back was a list of what types and methods were translatable to SQL and subtle behavior differences. Just want you to know this was very helpful.
A: Thanks. There were a few of us that contributed to that document. :-)
Dinesh Kulkarni[MS] (Expert):
Q: What is the relationship between LINQ and .Net Framework 3.0?
A: LINQ is not a part of .NET Fx 3.0. Various LINQ components including LINQ to SQL are a part of the .NET Fx 3.5 codenamed "Orcas"
AmandaS [MSFT] (Expert):
Q: Any estimated release date? Java 6.0 is out, I am waiting for any official date...
A: We're aiming to ship in the second half of next year. We've already started having fully integrated CTPs (with features in all areas of the product.)
Charlie MSFT (Moderator):
Q: What do you see as the biggest hurdle for developers currently supporting soon-to-be-old technologies (like ADO[.*]) in migrating to LINQ?
A: The biggest jump when getting used to the LINQ programming paradigm is getting used to functional programming. We are used to using an imperative syntax where we give explicit instructions. The query expression syntax is quite simple and intuitive, but it takes a little leap conceptually to get used to. Once you understand it, then people can get up to speed quickly.
Matt Warren [MSFT] (Expert):
Q: What is the key difference between ADO.NET Entities and LINQ 2 SQL?
A: LINQ to SQL is an ORM over your relational database schema plus some mappings. LINQ to Entities is an ORM over a conceptual object-less model (ERM) that is a mapping over your relational database schema.
Dinesh Kulkarni[MS] (Expert):
Q: (Feature Request) I would like to be able to specify an include or exclude list for SQLMetal. At the moment, many StoredProcedures which I don't want (reporting services, etc) are failing when SQLMetal tries to generate their stored procedure wrapper.
A: Good suggestion. We are working on providing mechanisms for doing that in SqlMetal through a DBML file that you can edit to exclude. Designer of course takes the "include" approach where you get to specify what to include through drag & drop (including multiple objects at once).
Mathew [MSFT] (Expert):
Q: Should we use Stored Procs or should we use LINQ with new development ?
A: I think the methods for deciding whether to use stored procedures or dynamic SQL for a particular application remain unchanged even after the release of LINQ to SQL. We just make both options easier.
Terry - MSFT (Expert):
Q: Will you provide custom "hooks" for mapping in the future? It would be nice if we could decorate entity classes with attributes and/or some XML config so that we could autogenerate constraints/indices when we call CreateDatabase().
A: I'm not sure what you question is. Anyone can decorate classes/columns with attributes they choose and then use those attributes to generate the database. However, it wouldn't automatically be used by CreateDatabase. CreateDatabase is intended to be a simple database creation feature for those developers that would like to map a set of existing objects into a database which hasn't been defined yet.
AmandaS [MSFT] (Expert):
Q: Are you saying that in that Feb 2007 Orcas CTP that all of the LINQ functionality existing in the May 2006 LINQ CTP plus any new features/fixes will be included? Right now, there is no one release to see the latest greatest LINQ.
A: We're still trying to figure out exactly which CTP will exhibit near parity with the May CTP. It will be coming shortly - in the first few months of the next year.
Terry - MSFT (Expert):
Q: Will the December CTP come with a good sample implementing IQueryable<T>, I've had a go at implementing it myself but there are some key things like separating expressions etc...

A: The December CTP does not have that sample. We are working on improving our sample story for the following CTP.
Matt Warren [MSFT] (Expert):
Q: What is the performance hit of LINQ to SQL compared to writing data methods with commands and parameters?
A: There is of course a performance cost of both translating queries into SQL and materializing results as objects. The relative cost of this depends on how complicated the query is and how much data is being retrieved. Yet much of this can be mitigated for server apps by using compiled queries (available soon).
Dinesh Kulkarni[MS] (Expert):
Q: Are there any specific applications where LINQ or any of its "sub-technologies" can be used with Windows Communication Foundation or Windows Workflow Foundation?
A: You can use LINQ to SQL or other LINQ technologies with WCF. One application is to build web-services with database back-ends where you need to "shape" your data. LINQ projections provide a powerful mechanism.

Another area is where you are going across relational-object-XML domains. You can do so easily with LINQ and consume XML obtained from a web-service.
Terry - MSFT (Expert):
Q: I heard that you’ll not be supporting a lazy loading in the ORM, any alternatives?
A: We do support lazy loading in LINQ to SQL.
Dinesh Kulkarni[MS] (Expert):
Q: I heard that you’ll not be supporting a lazy loading in the ORM, any alternatives ?
A: We have supported and continue to support lazy loading. We are simply adding an alternative to use LINQ to SQL without requiring lazy loading.
Matt Warren [MSFT] (Expert):
Q: I heard that there are new features of C# 3.0 and LINQ coming with the December CTP, is that true, and if so what are they?
A: There are mostly just refinements of features that were available in prior LINQ CTP's. New stuff in December relative to earlier Visual Studio CTP's is lambda to expression tree translation.
AmandaS [MSFT] (Expert):
Q: Will the Orcas version of VB have lambda expressions?
A: Yes! However, they are still in development and haven't made it into a CTP as of yet.
Matt Warren [MSFT] (Expert):
Q: Will extension methods have more access than to public members of the class, and is there any plans to support the asynchronous methods of c omega in c# 3.0?
A: Extensions methods are just syntactic sugar over using normal static methods. So, no, they cannot access anything you would not normally be able to access in a static method defined outside the class.
Dinesh Kulkarni[MS] (Expert):
Q: Can we use May CTP LINQ with .NET 3.0 RTM without any problems?
A: I have personally used LINQ with .NET 3.0 beta before without problems and know of people who have used RTM as well. I am not aware of problems (beyond what you would expect from a tech preview ;-) )
Charlie MSFT (Moderator):
Keep those questions coming. We have lots of experts here ready to answer your questions. We are ready for questions on anything on LINQ to SQL, or on related technologies such as extension methods, lambdas, etc.
Mathew [MSFT] (Expert):
Q: I tried to use the method CreateDatabase() of my DataContext but it does not seem to be working. How should I properly initialize the connection and use this method?
A: Can you provide the code that is not working for you? The general pattern is:

Q [39] - Northwind nw = new Northwind("your connection string"); nw.CreateDatabase()
Terry - MSFT (Expert):
Q: Re: [22] Terry -- Yeah, but I have to write that code myself =). If you provided a "CustomSQL" attribute or something like that I could define abitrary T-SQL to run when CreateDatabase was called to automatically create indices, constraints, whatever else!
A: OK. I see what you are getting at. We would have to define specific semantics for when this SQL is called. Would you want this functionality for both classes and properties?
Jay Hickerson MS (Expert):
Q: Re [Q2] I am think about using the Validation Application Block to add some constraints to the fields of my tables
A: I'm not super familiar with the Validation Application Block but if I'm not mistaken it is implemented as a set of CLR attributes. The O/R designer (formerly called the DLinq Designer) does allow you to put custom CLR attributes on properties of classes, and the classes themselves.
Dinesh Kulkarni[MS] (Expert):
Q: Dinesh: What if all of my entities have common columns (i.e. a primary key ID and a rowversion) – Can I put those in the base class my entities all extend from? =\
A: Even if you do, they will likely have different mappings - each entity will go to a different table (in the LINQ to SQL model). So having a base class is fine but the mapping needs to be in the entity class (unless the whole hierarchy maps to a single table).
Matt Warren [MSFT] (Expert):
Q: "We are simply adding an alternative to use LINQ to SQL without requiring lazy loading" what is that alternative??
A: You can disable deferred loading by setting a property on the DataContext, and then you can describe pre-fetch behavior using the new DataShape class.
Dinesh Kulkarni[MS] (Expert):
Q: [12] Dinesh: Re the validation features: Any idea in which CTP we'll first see them?
A: Not until later in the year. It won't be in the Feb CTP and it won’t be in Beta1. We just finished all that work and partial methods/optimized events are not in it.
Terry - MSFT (Expert):
Q: Q6: Maybe some variants: Refresh table - get table but keep relations. Only new fields, Refresh All - get table and relations - and maybe some option to show differences between the LINQ schema and database schema (of table)
A: Thanks for the input. I will pass this suggestion on to the designer team. I especially like the idea of showing the differences between the items that have been mapped and what is left to be mapped in the database.
AmandaS [MSFT] (Expert):
Q: I know you can query XML elements, but can you generate XML elements with LINQ?
A: Yes! The XLINQ API is a full XML DOM including element-centric XML construction.
Dinesh Kulkarni[MS] (Expert):
Q: Is there any documentation on (or plans for) migrating the use of existing supported technologies to LINQ to SQL?
A: I would love to hear specific requests and details in this area. This is the kind of stuff that we want to address through various channels. It will likely not be a part of the "product doc" but I can totally see the value of putting it on MSDN/blogs etc.

Please post your wish list here or send it to me at <myfirstname>.<mylastname>@microsoft.com

Thanks.
Terry - MSFT (Expert):
Q: Re: Terry[36]: Both classes and properties would be great -- perhaps you could provide an enum (BeforeCreateTable, AfterCreateTable, etc) to determine when to run it, or provide a Type on the attribute that indicates a dependency on another mapped class.
A: OK.
Matt Warren [MSFT] (Expert):
Q: Is the only new LINQ stuff in the December Orcas beta going to be lambda to expression tree translation?
A: There will also be new variants on list initializers, so you can initialize a class like Dictionary, and new type inference rules for generic method type arguments. Though, mostly the next CTP will generally have feature parity with prior LINQ CTPs (that were based on prototypes).
Matt Warren [MSFT] (Expert):
Q: Last time I checked, LINQ to SQL required a table to have primary keys? Is that still true?
A: We've relaxed that recently and now allow you to have read-only tables that do not specify primary keys, so you can use these for views, etc. However, note that the PK you specify does not have to a true database PK, only a unique key.
Mathew [MSFT] (Expert):
Q: Is the new DataShape class documented anywhere at the moment?
A: Not publicly - however we plan to get some documentation plus samples together before the beta release for all the new features.
Matt Warren [MSFT] (Expert):
Q: Matt...that CTP being Feb 2007?
A: I believe so.
Dinesh Kulkarni[MS] (Expert):
Q: "Compiled Queries?"... Might sound silly, but what are they and how do they work?
A: LINQ to SQL does work to translate an expression tree to SQL. Compiled queries let you amortize the cost of this translation over multiple executions of the same query - possibly with different parameter values. So it is an optimization.
AmandaS [MSFT] (Expert):
Q: What about the DB Null dilemma ?
A: It's a hard problem... The problem is that the CLR already has a concept of null -- the null reference. The Nullable type, introduced in 2005, is an attempt to denote Nullable value types and allow you to write null propagating expressions. When LINQ to SQL and LINQ to Entities creates an ORM over your relational data, they will map Nullable columns to Nullable(Of T). [That's Nullable<T> to those of you who code in C#.]
Matt Warren [MSFT] (Expert):
Q: @Matt, can you expand on this list initializers idea? How would I initialize a Dictionary?
A: new Dictionary<int, string> { {1, "one"}, {2, "two"}, {3, "three"} }
Terry - MSFT (Expert):
Q: My understanding is that var(s) are not serializable... can you recommend an approach for making projections serializable i.e. select {p.Firstname, p.Surname} ?
A: The only suggestion I have is to project these into a class which you have defined as Serializable. This requires you to define another class for the projection.
Matt Warren [MSFT] (Expert):
Q: @Matt, can you expand on this list Initializer idea? How would I initialize a Dictionary?
A: You can also initialize Collections that do not implement ICollection, and a class that is enumerable and implements an Add() method. You can use tuples: {x, y, z} to describe arguments that match the Add() method signature if there is more than one argument. This enables initialization of many pre-exisitng collection classes in the frameworks and 3rd party products. The dictionary initialization is merely a case of this generalization.
Matt Warren [MSFT] (Expert):
Q: When will we see a first working CTP/Beta including LINQ to Entities?
A: LINQ to Entities is supposed to be available in the next CTP. February, I believe.
Matt Warren [MSFT] (Expert):
Q: Is there still an effort to integrate LINQ to SQL and LINQ to Entities?
A: There is an effort on going to align these products, but not to integrate them together.
AmandaS [MSFT] (Expert):
Q: But about null behavior, as it has been said before, database null is not the c# null, still no solution of that? Maybe an extension property that is called DBNull that will do the database behavior of null for example...
A: There's no obvious solution for how to rectify the two. What's the scenario that you're thinking about where this becomes a problem?
Terry - MSFT (Expert):
Q: (Feature request) Scenario: Smart Client application - to save bandwidth, I only want to send the changed, new and deleted objects back to the server for processing. Can we get a list of just the objects added/changed/deleted records (or RowState style prop)?
A: Thanks for the suggestion. I'll put this on our list of feature suggestions.
Matt Warren [MSFT] (Expert):
Q: In C# 2.0, I needed to do a recursive anonymous method, but that fails because the method doesn’t see its reference, or am I mistaken?
A: To do a recursive anonymous method you need to create a local variable for the anonymous method initialized to null, and then referencing that variable in your anonymous method.
Dinesh Kulkarni[MS] (Expert):
Q: Re: Dinesh [26]: That requires me to override all of the properties in the base class JUST so I can put a mapping attribute on the concrete class -- better support for XML mapping would help here (allowing me to map a property that’s actually on the base)
A: Is this a case where the column names are identical but the tables are different? E.g. all have ID but it goes to CustomerTable.ID versus EmployeeTable.ID for separate classes? That's a fair request. We will look into it though our schedule is quite tight.
Matt Warren [MSFT] (Expert):
Q: What about my question of asynchronous C# methods feature of C Omega research?
A: There is no asynchronous method planned for C# in the Orcas timeframe.
Dinesh Kulkarni[MS] (Expert):
Q: Re: Dinesh[10]: Are you saying that the December CTP will NOT have all of the functionality of the May CTP (in terms of LINQ to SQL support)? =(
A: Yes. That is what I am saying. Feb CTP should have better feature coverage for LINQ to SQL.
Charlie MSFT (Moderator):
We are a little over half way through the chat. Keep those good questions coming. Anything related to LINQ to SQL and most questions about LINQ in general are fair game.
AmandaS [MSFT] (Expert):
Q: The famous scenario is when I search where s.name==d.name and both are null in the database :)
A: Sure... But if both of them refer to objects in your DLINQ ORM the result would be the null value due to support for null propagation with Nullable(Of T)
Matt Warren [MSFT] (Expert):
Q: Actually I saw a lot of feature of the f# project, and I see that C# is implementing some of its functional programming features. How far would that go?
A: The C# features that were introduced that are similar to 'functional programming' were added to address specific customer programming scenarios. As long as the scenarios continue requiring functional programming like solutions we'll keep adding them. However, we’re not specifically setting out to turn C# into a functional programming language.
Terry - MSFT (Expert):
Q: When I use: I have error "An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Add a name or single space
MyDataContext dc = new MyDataContext();

dc.Connection.ConnectionString = "Data Source=localhost;Integrated Security=True";

dc.CreateDatabase();

dc.Connection.Close();
A: I would need to see your DataContext to see what the issue is. I would begin by looking at the DBType property in the Column attribute that you have specified on your classes.
Cyrus - MS (Expert):
Q: No plans to implement anonymous class? So we implement anonymouslt an interface as it is done in java, I believe that it is useful.
A: Sadek, currently we think the conceptual overhead of anonymous classes is too heavy to warrant their inclusion.
Dinesh Kulkarni[MS] (Expert):
Q: Re: Dinesh[50]: That's exactly it: all of my entities have an ID and a RowVesion (and some other validation and plumbing code) in a base class -- but the actual entities are conceptually unrelated. It’d be great if you supported this scenario for mapping.
A: Got it - sort of structural (not behavioral) inheritance. Thanks. We will look into it.
Matt Warren [MSFT] (Expert):
Q: What about the rest of LINQ in the December beta...will it be in parity with May 2006 CTP?
A: That is the goal.
Matt Warren [MSFT] (Expert):
Q: RE [58]: LINQ to SQL and LINQ to Entity "alignment" - Will they both still generate their own object model?
A: We've been investigating ways that the two products could share entity definitions. I'm not promising anything, however.
Charlie MSFT (Moderator):
We've been getting lots of great questions, but we need even more. If you have any questions about LINQ, please go ahead and ask.
Mathew [MSFT] (Expert):
Q: When I use: I have error "An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Add a name or single space
MyDataContext dc = new MyDataContext();

dc.Connection.ConnectionString = "Data Source=localhost;Integrated Security=True";

dc.CreateDatabase();

dc.Connection.Close();
A: Is your context using attribute mapping or an external mapping file?
AmandaS [MSFT] (Expert):
Q: So Feb Oracs beta should have full parity with May 2006 CTP and LINQ to Entities plus all new features and fixes?
A: We're still trying to figure out exactly which CTP will have full parity. But the February CTP will be pretty fully featured.
Dinesh Kulkarni[MS] (Expert):
Q: Dinesh: add me to the list of folks asking for structural inheritance. I'd love to see it in C# generally, but that might be too much to ask.
A: Sure thing. Yes, but for the language it is unlikely.
Charlie MSFT (Moderator):
Don't just ask questions in the chat window, go ahead and ask the experts, share your questions with everyone.
Dinesh Kulkarni[MS] (Expert):
Q: Suggestion: Improve the Exceptions! It's impossible to debug exceptions that occur due to incorrect mapping without digging through Reflector!
A: Yes. We are working on it. If you have specific bad ones, please nominate on LINQ forum on MSDN

https://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=123\&SiteID=1
Terry - MSFT (Expert):
Q: Any plans of dynamic attributes for C#, or even .NET?
A: What do you mean by dynamic properties? Is this like expando properties in JScript?
Charlie MSFT (Moderator):
Q: What's the intended time frame for the Dec 2006 Orcas CTP? Pre or post Christmas?
A: We don't yet have a specific date for the December CTP. We are working to get it out as soon as possible, but it will be here sometime in December.
AmandaS [MSFT] (Expert):
Q: Will you provide any implementation for LINQ to files explorer?
A: Because LINQ works over Object collections - this kind of already works. You can use the Fx to get a collection of Files and then query over the Objects that result from the API calls
Dinesh Kulkarni[MS] (Expert):
Q: If I just DLINQ in my ASP.NET application. What do I have to install on the production server, when the final release is out? A new framework version or just an add-on?
A: .NET Fx 3.5 (code name "Orcas")
AmandaS [MSFT] (Expert):
Q: Is this like expando properties in JScript? Yep
A: We are thinking about adding more dynamic extensions to VB beyond the simple late binding support you have today.
Terry - MSFT (Expert):
Q: If I use DLINQ in my asp.net application. What do I have to install on the production server, when the final release is out? A new framework version or just an add-on?
A: I guess that would depend on your architecture; but if you want to write queries inside of ASP.Net pages then you would need the new framework version that will be released with Orcas.
AmandaS [MSFT] (Expert):
Q: Because LINQ works over Object collections - this kind of already works. You can use the Fx to get a collection of Files and then query over the Objects that result from the API calls >> I wont return the list of all the files I have in a folder....
A: Not sure what you're trying to do... Are you trying to filter the list of files in a folder?
AmandaS [MSFT] (Expert):
Q: So the more dynamic extensions will be only for VB?
A: We respond to what our customers tell us they need. Would you like to see this kind of functionality in C#?
Charlie MSFT (Moderator):
About 10 minutes left in the chat. We have lots of great experts here, please go ahead and ask your LINQ related questions.
Keith Farmer [MSFT] (Expert):
Q: Does anyone know what this is: application error: exception GIFException in module aviWUSB54GC.dll at 000252 AF. Anyone?
A: That appears to be a question you need to direct to Linksys, not Microsoft. This might provide a place to start: https://forums.linksys.com/linksys/board/message?board.id=Wireless_Adapters&message.id=1075.
Jay Hickerson MS (Expert):
Q: I think it would be good to add properties to the DLINQ designer to support designer parameters like: pluralize, etc
A: Pluralize, specifically, will be an option that you can turn on/off. What other types of properties would you like to be able to change?
Matt Warren [MSFT] (Expert):
Q: I want to select over all the files on disk D, all the files of the extension .txt, where it would not be a practical to return all the files of drive D as a collection....
A: Maybe if we can get Pablo to chime in on this one?
Terry - MSFT (Expert):
Q: It would be nice if you could make EntitySet implement INotifyPropertyChanged so that an entity class with a entityset could be used for data binding (the delegates entityset provides only fire BEFORE changing the set).
A: We will allow data binding for EntitySet, for instance with a master-detail. I want to make sure that I understand your question. Are you looking for an event when an instance in the entity set changes that would fire saying the entire entity set property has changed?
Dinesh Kulkarni[MS] (Expert):
Q: I asked a question before, will be there any support for extension properties and extension events for example.
A: Not planned.
AmandaS [MSFT] (Expert):
Q: AmandaS [MSFT] (Expert): of course I would like to see more late bind dynamic features in C#
A: I'll pass that along to the C# language design team.
Matt Warren [MSFT] (Expert):
Q: Are the LINQ to DataSet ToQueryable() or LoadSequence() methods getting dropped?
A: Maybe if we can get Pablo to chime in on this one?

Dinesh Kulkarni[MS] (Expert):
Q: Any changes in anonymous types ...being able to return a var to another function?
A: Inferring return type - not planned (sigh!)
Jay Hickerson MS (Expert):
Q: Is it possible to add versioning to the DLINQ designer and an option to create a script of changes between the checked versions?
A: Versioning and change scripts aren't planned for Orcas but I'll be sure to pass on your suggestion to the rest of the team.
Dinesh Kulkarni[MS] (Expert):
Q: What's the Orcas release schedule?
A: Best place to watch is our VP - Soma's blog https://blogs.msdn.com/somasegar/
Charlie MSFT (Moderator):
Q: Charlie: When will a transcript of this post be available?
A: I'll get a transcript up on my blog within 24 hours, and then it will also end up as a regular transcript in a few weeks.
Charlie MSFT (Moderator):
Q: Charlie: When will a transcript of this post be available?
A: I've posted transcripts of recent chats here: https://blogs.msdn.com/charlie/archive/2006/11/29/c-ide-chat-november-28-2006.aspx and also here: https://blogs.msdn.com/charlie/archive/2006/11/28/transcript-from-the-november-14-2006-c-language-chat.aspx.
Charlie MSFT (Moderator):
Just a few minutes left. Please get in your last minute questions and then we will wrap up.
Terry - MSFT (Expert):
Q: Re: Terry[81:] -- If I have an entity class that has an EntitySet on it, I want to be able to have the parent entity class fire an event (perhaps the INotifyPropertyChanged stuff) when an entity is added to or removed from its child EntitySet.
A: We have an event that is part of the IBindingList behavior that is called OnListChanged.
Mathew [MSFT] (Expert):
Q: Any best practices on instantiating DataContext instances in a smart client? Create one for the entire life of the app? Or create them on demand as data is needed? If you create one will you continue piling up stuff in the cache or does it get flushed?
A: We don't do any cache flushing - the cache in monotonically increasing. Therefore, it depends on how much data is in your database and how much memory you're willing to consume.
Jay Hickerson MS (Expert):
Q: I think that all options which SqlMetal uses (pluralize - because of local names and external mapping are ones most expected)
A: Thanks for the suggestion. I'll review the options in SQL Metal and see which, if any, we can support in the designer. If you have specific options you'd like to see please submit them as feedback.
Charlie MSFT (Moderator):
Q: What about extending the generics library?
A: Can you clarify? How do you want us to extend it?
Charlie MSFT (Moderator):
All right everyone. We are out of time here. Thank you so much for coming by and asking so many great questions!
AmandaS [MSFT] (Expert):
Q: I want to select over all the files on disk D, all the files of the extension .txt, where would not be a solution to return all the files of drive D as a collection....
A: You can use the frameworks to recursively find all of the files on your drive D that have an extension of '.txt'. In VB.NET you can do this by using My.Computer.FileSystem.GetFiles.
Mathew [MSFT] (Expert):
Q: Re: Mathew[97]: Well since DataContext creation is expensive (I would think) it might be good to provide a way to flush the cache so that it doesn't grow unbounded if you create just one context for the life of the app.
A: We do support the reuse of mapping information across DataContext instances, so some costs can be amortized. I'll track cache flushing as a suggestion, thanks.
Keith Farmer [MSFT] (Expert):
Q: I have a question on C#. When I implement an internal interface why can’t I mark a method as internal?
A: Interfaces define a set of APIs that are always as visible as their interface. It wouldn't make sense to define what are effectively private APIs in public interfaces, and internal methods are effectively that.
Terry - MSFT (Expert):
Q: Which makes me think -- Does DataContext do any caching of the metadata for types so that re-creation of a DataContext class isn't expensive after the first time?
A: That is a feature that we just finished working on and you should see it in the Feb CTP

Mike Pizzo [MS]:

Q: sadek: What is the key deffirence between ADO.NET Entities and LINQ To SQL ?

A:   LINQ to SQL provides a simple mapping of classes directly to tables (or table valued functions, views, or stored procedures) within your storage schema.  LINQ to Entities maps classes to a conceptual "entity model" that can provide more advanced mappings to your relational store, if required.

Mike Pizzo [MS]:

Q: Joe Rattz asked the experts: When will we see a first working CTP/Beta including LINQ to Entities?

A: Mike Pizzo [MS]: You can download an August CTP of the Entity Framework, including LINQ to Entities, here: https://www.microsoft.com/downloads/details.aspx?familyid=b68f6f53-ec87-4122-b1c8-ee24a043bf72&displaylang=en

The August CTP of the Enity Framework works with (and requires) the May LINQ CTP.

Mike Pizzo [MS]:

Q: Joe Rattz: Mike Pizzo, I don't understand, I thought LINQ to Entities wasn't going to be ready for a while.  Is it rough or fairly usable?

A: Mike Pizzo [MS]: The August CTP of LINQ to Entities is a reasonable CTP (meaning, fairly functional but not "ship quality" bits).  We are checking production-quality code into Orcas, and the Entity Framework (minus LINQ support) has been in the official Orcas CTPs since October.  Updated ADO.NET Entity samples for the Orcas CTP can be found here: https://www.microsoft.com/downloads/details.aspx?familyid=c14c451d-7043-44f0-87d7-845f1c238d64&displaylang=en.  We will have full LINQ to Entity support in the February Orcas CTP.

Mike Pizzo [MS]:

Q: Joe Rattz asked the experts: Is there still an effort to integrate LINQ to SQL and LINQ to Entities? Troy Magennis: RE [58]: LINQ to SQL and LINQ to Entity "alignment" - Will they both still generate their own object model?

A: Mike Pizzo [MS]: We'd love to get your feedback as to what scenarios are most important. Is it important to be able to share data classes between the two, or sufficient to be able to generate separate classes for each based on a common object model definition? Is it important to be able to do common CRUD operations between the two?  What are the scenarios in which you would interoperability would be important? This is an area that we are currently investigating, and specific scenarios you can provide will help us shape this alignment.  Please send thoughts/comments/scenarios to: Mikep@Microsoft.com