views:

334

answers:

3

I have 62 columns in a table under SQL 2005 and LINQ to SQL doesn't handle the updates though the reading would work just fine, I tried re-adding the table to the model, created a new data model but nothing worked, I'm guessing I've hit the maximum number of columns limit on an object, can anyone explain that ?

A: 

There is no limit to the number of columns LINQ to SQL will handle.

Have you got other tables updating successfully?

What else is different about how you are accessing the table content?

AnthonyWJones
+1  A: 

I suspect there is some issue with an identity or timestamp column (something autogenerated on the SQL server). Make sure that any column that is autogenerated is marked that way in the model. You might also want to look at how it is handling concurrency. If you have triggers that update any values on the row after it is updated (changing values) and it is checking all columns on updates, this would cause the update to fail. Typically I create my tables with a timestamp column -- LINQ2SQL picks this up when I generate the model and uses it alone for concurrency.

tvanfosson
+1  A: 

Solved, either one of the following two

-I'm using a UniqueIdentifier column that was not set as Primary key

-Set Unique ID primary key, checked the properties of the same column in Server Explorer and it was still not showing as Primary key, refreshed the connection,dropped the same table on the model and voila.

So I assume I made a change to my model some time before, deleted the table from the model and added the same from the Server explorer without refreshing the connection and it never used to work.

Question is, does VS Server Explorer maintain it's own table schema and requires connection refresh everytime a change is made in the database ?

Zubair Ahmed
Yes. Yes it does.
Michael Haren
@Zubair: this is pretty much what @tvanosson suggested. I suggest you upvote and accept his answer.
Michael Haren