This documentation is archived and is not being maintained.

ObjectContext.AddObject Method

Adds an object to the object context.

Namespace:  System.Data.Objects
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

'Declaration
Public Sub AddObject ( _
	entitySetName As String, _
	entity As Object _
)

Parameters

entitySetName
Type: System.String
Represents the entity set name, which may optionally be qualified by the entity container name.
entity
Type: System.Object
The Object to add.

ExceptionCondition
ArgumentNullException

The entity parameter is Nothing.

-or-

The entitySetName does not qualify.

Call AddObject on the ObjectContext to add the object to the object context. Do this when the object is a new object that does not yet exist in the data source. For more information, see Attaching Objects (Entity Framework).

Objects are added to the ObjectStateManager in the Detached, Deleted or Added state.

When you create a new object that is related to another object in the object context, add the object by using one of the following methods:

For more information, see Adding, Modifying, and Deleting Objects (Entity Framework).

If the object is in a detached state it must not have an EntityKey.

The rules for the entitySetName format are as follows:

  • If the DefaultContainerName property is Nothing, then the entitySetName has to be fully qualified as in <Entity Container Name>.<Entity Set Name>.

  • If DefaultContainerName is not Nothing, then the entitySetName can be either <Entity Container Name>.<Entity Set Name> or <Entity Set Name>.

If the object has an EntityKey and entitySetName has a value, then the EntitySet of the entity key must match the EntitySet that was found based on the entitySetName and entity container name.

This example is based on the Adventure Works Sales Model. The example adds a new product and saves the changes to the database.


Dim newProduct As Product

' Define values for the new product. 
Dim dateTimeString As String = "1998-06-01 00:00:00.000"
Dim productName As String = "Flat Washer 10"
Dim productNumber As String = "FW-5600"
Dim safetyStockLevel As Int16 = 1000
Dim reorderPoint As Int16 = 750

' Convert the date time string into a DateTime instance. 
Dim sellStartDate As DateTime
If Not DateTime.TryParse(dateTimeString, sellStartDate) Then
    Throw New ArgumentException(String.Format("The string '{0}'cannot be converted to DateTime.", dateTimeString))
End If

' Create a new Product. 
newProduct = Product.CreateProduct(0, productName, productNumber, False, False, safetyStockLevel, _
             reorderPoint, 0, 0, 0, DateTime.Today, Guid.NewGuid(), DateTime.Today)

Using context As New AdventureWorksEntities()
    Try
        ' Add the new object to the context. 
        context.Products.AddObject(newProduct)

        ' Persist the new produc to the data source. 
        context.SaveChanges()

        ' Return the identity of the new product. 
        Return newProduct.ProductID
    Catch ex As UpdateException
        Throw New InvalidOperationException(String.Format("The object could not be added. Make sure that a " & _
                                                          "product with a product number '{0}' does not aleady exist.", _
                                                          newProduct.ProductNumber), ex)
    End Try
End Using


.NET Framework

Supported in: 4, 3.5 SP1

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: