The Insert method allows the insertion of data into your database.
The return value of an Insert method is a single row of data that has just been inserted.
You can insert using two forms, Named parameters and by object. The object can be a POCO or a dynamic (i.e. ExpandoObject).
Note: There are differences in the generated SQL when using Named Parameters or object, where the object includes all properties included on the object, but the Named Parameters only includes those you specify.
var user = _db.Users.Insert(Name: "Steve", Age: 50);
Generates the following SQL
@p0 = 'Steve' @p1 = 50 insert into [dbo].[Users] ([Name],[Age]) values (@p0,@p1)
var user = new User { Name = "Steve", Age = 50 }; _db.Users.Insert(user);
Generates the following SQL
@p0 = 'Steve' @p1 = null @p2 = 50 insert into [dbo].[Users] ([Name],[Age]) values (@p0,@p1,@p2)
If your database uses auto-incrementing integer IDs, use the return value of Insert (which is always the single row of data that has just be inserted):
User user1 = new User { Name = "Steve", Age = 50 }; User user2 = _db.Users.Insert(user1); Debug.Assert(user2.Id != 0); // passes Debug.Assert(user1.Id != 0); // fails - insert source not given the new ID.
var users = new[] { new User { Name = "Slartibartfast", Password = "bistromathics", Age = 777 }, new User { Name = "Wowbagger", Password = "teatime", Age = int.MaxValue } }; IListretrows = _db.Users.Insert(users).ToList ();
Generates the following SQL
insert into [dbo].[Users] ([Name],[Password],[Age]) values ('Slartibartfast','bistromathics',777) insert into [dbo].[Users] ([Name],[Password],[Age]) values ('Wowbagger','teatime',2147483647)