I tend to use uniqueidentifiers for my primary key columns with a default value of newid() so the database will generate a Guid for me. I created a LinqDataSource and bound that to a DetailsView control. I was able to insert my first row within 10 minutes of writing all this code but subsequent inserts would always throw a unique constraint exception. After looking at the database, I saw my first row's Id was Guid.Empty so I knew that Linq was pushing this as a default value to the database instead of letting the database create a newid() for me. It turns out the solution is very simple. Open your DBML file, select the primary key column and change the Auto Generated Value property to true. So far, I'm still impressed with Linq.