protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Product>().MapToStoredProcedures();
}

Product_Insert

CREATE PROCEDURE [dbo].[Product_Insert]
@Name [navarchar](max),
@Price [int],
@Quantity [int]
AS BEGIN
INSERT [dbo].[Product]([Name],[Price],[Quantity]) VALUE(@Name,@Price,@Quantity)
DECLARE @Id int SELECT @Id=[Id]
FROM [dbo].[Product]
WHERE @@ROWCOUNT > 0 AND [Id]= scope_identity()
SELECT t0.[Id], t0.[Timestamp] FROM [dbo].[Product] AS t0
WHERE @@ROWCOUNT > 0 AND t0.[Id] = @Id 

Product_Update

CREATE PROCEDURE [dbo].[Product_Update]
@Name [navarchar](max),
@Price [int],
@Quantity [int]
@Timestamp_Original [timestamp]
AS BEGIN
UPDATE [dbo].[Product]

SET [Name] = @Name ,[Price] =@Price,[Quantity]=@Quantity 
WHERE (([Id]=@Id) AND 
([Timestamp]=@Timestamp_Original OR [Timestamp] IS NULL AND @Timestamp_Original IS NULL)))

SELECT t0.[Timestamp]
FROM [dbo].[Product] AS t0
WHERE @@ROWCOUNT > 0 AND t0.[Id] = @Id
END