Thanks for the write-up Varun. I will take a further look at coding syntax for LINQ. Have you done any cross table or multi-table queries and inserts using transactions or anything that would require accessing multiple tables? I am thinking of something llike an insert running as a transaction requireing 2 tables to be updated or a rollback to occur.Also, have you tried any joins on multiple tables?
Rick Farmington Mich. USA----- Original Message ----- From: "Varun Khosla" <varun.lists@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx> Sent: Saturday, June 14, 2008 4:31 AM Subject: Re: VS2008: How to access properties of a table in O/R designer
Hi Rick, See below why you may find LINQ more easier than ADO.net. Language-Integrated Query (LINQ) Language-Integrated Query (LINQ) is a set of features in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic. LINQ introduces standard, easily-learned patterns for querying and updating data, and the technology can be extended to support potentially any kind of data store. Visual Studio 2008 includes LINQ provider assemblies that enable the use of LINQ with .NET Framework collections, SQL Server databases, ADO.NET Datasets, and XML documents. Language-Integrated Query (LINQ) is a groundbreaking innovation in Visual Studio 2008 and the .NET Framework version 3.5 that bridges the gap between the world of objects and the world of data. Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. LINQ makes a query a first-class language construct in C# and Visual Basic. You write queries against strongly typed collections of objects by using language keywords and familiar operators. The following illustration shows a partially-completed LINQ query against a SQL Server database in C# with full type checking and IntelliSense support. In Visual Studio you can write LINQ queries in Visual Basic or C# with SQL Server databases, XML documents, ADO.NET Datasets, and any collection of objects that supports IEnumerable or the generic IEnumerable<(Of <(T>)>) interface. LINQ support for the ADO.NET Entity Framework is also planned, and LINQ providers are being written by third parties for many Web services and other database implementations. You can use LINQ queries in new projects, or alongside non-LINQ queries in existing projects. The only requirement is that the project target version 3.5 of the .NET Framework. http://msdn.microsoft.com/en-us/library/bb397897.aspx You can even now query variables as if they are database objects! :-) On 6/12/08, Ricks Place <OFBGMail@xxxxxxxxx> wrote:Man! That looks way diferent than Ado or even regular old Select statements! That problem with the ReadOnly is the one I have run up against. It is thesame in DataSet methodology. We are working with PreDefined rows in theschema so any changes must be applied to an instance of the PreDefined row and if we select only 2 columns and tried to update them the other columnswould not have any values because they were not a part of the originalselect statement. Have you found Linq any easier than Ado? It looks verbose.Rick USA ----- Original Message ----- From: "Varun Khosla" <varun.lists@xxxxxxxxx> To: <programmingblind@xxxxxxxxxxxxx> Sent: Wednesday, June 11, 2008 12:47 AM Subject: Re: VS2008: How to access properties of a table in O/R designerHi Ricks, In linq when we query the database like this: dim resultRow = (from tableVar in dataContext.TableName where tableVar.key = matchingKeyVar select tableVar).take(1).single() the resultRow variable is filled up with first row resulting from the where condition. Now suppose the queried table has 15 columns, and we want to update the value of column5&6, we can do that like this: resultRow.column5 = "some value" resultRow.column6 = "some another value" And call submit changes like this: dataContext.SubmitChanges() It will update those two columns. since resultRow contained values of all the 15 columns, we don't need to specify the value of each but only those which we want to update. But if you had specified a select statement in the linq query like this: dim resultRow = (from tableVar in dataContext.TableName where tableVar.key = matchingKeyVar select tableVar.column5, tableVar.column6).take(1).single() This query will result in only two columns being members of resultRow, but as I have seen, these columns are read-only and you cannot change their value. HTH On 6/8/08, Ricks Place <OFBGMail@xxxxxxxxx> wrote:Hi Guys: Along these lines: When I use a DataTable, DataSet, I get Rows on any select. I can limit the data returned to a couple of columns but it seems I have to provide values for an entire row or the values are messed up during an update. I don't think I can just set and update a couple of columns using the DataSet Update function. Is this the case with Linq? Can you just Select a couple of columns, set them and then apply an update for them or will that tip other columns in the original row?I hope I explained this well enough to understand and my understanding iscorrect. I had problems like this some time ago so always just read entire rows, update whatever columns I want then ReWrite the entire row. This is, of course, pretty inefficient and I even had to write a TableAdapter extension to avoid Optimistic Concurrency for a particular update since it was so blasted slow and unnessisary for the particular update.Anyway, while on the Linq topic I thought I would ask in case someone hashad experience with this situation. Rick Farmington Mich. USA If you knowal Message ----- From: "Varun Khosla" <varun.lists@xxxxxxxxx> To: <programmingblind@xxxxxxxxxxxxx> Sent: Sunday, June 08, 2008 3:10 AMSubject: Re: VS2008: How to access properties of a table in O/R designerBy the way, I've found an alternative for this. Locate the table in the designer window, press shortcut key, open add sub-menu, click property - it will take you to the list of the columns for that table focussing an edit box forcing you to specify a name for the new property. Pressing the shift+tab creates a new property with the default name property1, since it's not required one can delete it by selecting it in the listbox and pressing the dell key. I know that this is not the right way to go about it, but this is the only way I'm able to know to go about it. (smile) On 6/7/08, Varun Khosla <varun.lists@xxxxxxxxx> wrote:P.P.S. is additional postscript On 6/1/08, Chris Hallsworth <christopherhallsworth71@xxxxxxxxxxxxxx> wrote:Hi what's PPS? I've heard of PS but not PPS? Thanks and sorry for my ignorance. -- Chris Hallsworth ----- Original Message ----- From: Varun Khosla To: programmingblind@xxxxxxxxxxxxx Sent: Monday, June 02, 2008 8:13 AMSubject: VS2008: How to access properties of a table in O/R designerHello listers, Has anybody worked on VS2008? It has new feature called LINQ (Language-Integrated Query) designed to further increased the speed/objectorientation of working with database. It has added an O/R designer forthis purpose. User can drag-drop tables from server explorer to the designer to create a data context which is the focle point of LINQ. Dragging/dropping part is okay because Jaws has a shortcut key for this purpose. The problem I'm facing is how to access properties of the table object (don't confuseproperties here with the general properties of any components such asName which can be accessed via f4 in O/R as well, but with the properties here Imean by columns of a table) so that I can delete specific columns thatIdon't require (only from the table class of O/R designer and not fromthe database). Has anybody gotten an idea as to how it can be done?P.S. I've not been able to find a shortcut key for this anywhere onthe net. P.P.S. Sighted folks can access it with the mouse, but there's no text written at that point to make jaws cursor do the job. Thanks -- Varun-- Varun-- Varun __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind__________ View the list's information and change your settings at //www.freelists.org/list/programmingblind-- Varun __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind__________ View the list's information and change your settings at //www.freelists.org/list/programmingblind-- Varun __________ View the list's information and change your settings at//www.freelists.org/list/programmingblind
__________View the list's information and change your settings at //www.freelists.org/list/programmingblind