mohammad reza
mohammad reza

Reputation: 3442

auto generate in LINQ to SQL

I have a table whit 2 columns , ID and name .I set 'YES' Identity for ID column .

I want to insert data to table whit LINQ .I want to get only name column from user in my application , and then ID column fill automatic to database and I can't give data that column and fill whitout I give it .

What should I do ?

I write in c# and work whit LINQ .

Upvotes: 1

Views: 6042

Answers (3)

marc_s
marc_s

Reputation: 754538

So your database field already is a INT IDENTITY - right?

Next, in your LINQ to SQL designer, you need to make sure your column is set to:

  • Auto Generated Value = TRUE
  • Auto-Sync = ON INSERT

enter image description here

Now if you add an entry to your database, the ID will be automatically updated from the value assigned to it by the database:

YourClass instance = new YourClass();
instance.Name = "some name";

YourDataContext.InsertOnSubmit(instance);
YourDataContext.SubmitChanges();

After the SubmitChanges call, your instance.ID should now contain the ID from the database.

Upvotes: 6

Kelsey
Kelsey

Reputation: 47726

Make sure your database table is setup correctly and that your ID is set as the primary key field and to auto increment. Regenerate your DBML if you need to by deleting the object and re-adding it. It should know that the ID is not needed and the auto fill it once the insert has succeeded.

Upvotes: 0

leppie
leppie

Reputation: 117250

If you used the DBML designer, that should be setup correctly.

The 'id' will be populated after you call SubmitChanges.

Upvotes: 0

Related Questions