ObjectContext.AddObject(String, Object) 메서드

정의

개체를 개체 컨텍스트에 추가합니다.Adds an object to the object context.

public:
 void AddObject(System::String ^ entitySetName, System::Object ^ entity);
public void AddObject (string entitySetName, object entity);
member this.AddObject : string * obj -> unit
Public Sub AddObject (entitySetName As String, entity As Object)

매개 변수

entitySetName
String

엔터티 컨테이너 이름으로 정규화될 수도 있는 엔터티 집합 이름을 나타냅니다.Represents the entity set name, which may optionally be qualified by the entity container name.

entity
Object

추가할 Object입니다.The Object to add.

예외

entity 매개 변수가 null인 경우The entity parameter is null.

또는-or-

entitySetName을 정규화할 수 없는 경우The entitySetName does not qualify.

예제

이 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.This example is based on the Microsoft SQL Server Product Samples: Database. 이 예에서는 새 제품을 추가 하 고 변경 내용을 데이터베이스에 저장 합니다.The example adds a new product and saves the changes to the database.

Product newProduct;

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

// Convert the date time string into a DateTime instance.
DateTime sellStartDate;
if (!DateTime.TryParse(dateTimeString, out sellStartDate))
{
    throw new ArgumentException(string.Format("The string '{0}'cannot "
        + "be converted to DateTime.", dateTimeString));
}

// Create a new Product.
newProduct = Product.CreateProduct(0,
    productName, productNumber, false, false, safetyStockLevel, reorderPoint,
    0, 0, 0, DateTime.Today, Guid.NewGuid(), DateTime.Today);

using (AdventureWorksEntities context =
    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 (UpdateException ex)
    {
        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.\n",
            newProduct.ProductNumber), ex);
    }
}
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

설명

에서를 호출 하 여 개체를 AddObject ObjectContext 개체 컨텍스트에 추가 합니다.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 and Detaching Objects.

개체는 ObjectStateManager Detached , Deleted 또는 상태의에 추가 됩니다 Added .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:

  • Add에서 메서드를 호출 EntityCollection<TEntity> 하 고 관련 개체를 지정 합니다.Call the Add method on the EntityCollection<TEntity> and specify the related object. 일 대 다 또는 다 대 다 관계에 대해이 작업을 수행 합니다.Do this for a one-to-many or many-to-many relationship.

  • Value의 속성을 EntityReference<TEntity> 관련 개체로 설정 합니다.Set the Value property of the EntityReference<TEntity> to the related object. 일 대 일 또는 다 대 일 관계에 대해이 작업을 수행 합니다.Do this for a one-to-one or many-to-one relationship.

자세한 내용은 만들기, 추가, 수정, 및 개체 삭제합니다.For more information, see Creating, Adding, Modifying, and Deleting Objects.

개체가 분리 된 상태 이면이 고, 그렇지 않으면 EntityKey 입니다.If the object is in a detached state it must not have an EntityKey.

형식에 대 한 규칙은 다음과 같습니다 entitySetName .The rules for the entitySetName format are as follows:

  • DefaultContainerName속성이 인 경우 nullentitySetName 와 같이 정규화 되어야 <Entity Container Name> <Entity Set Name> 합니다.If the DefaultContainerName property is null, then the entitySetName has to be fully qualified as in <Entity Container Name>.<Entity Set Name>.

  • DefaultContainerName가이 아니면 nullentitySetName 일 수 있습니다 <Entity Container Name> .<Entity Set Name>If DefaultContainerName is not null, then the entitySetName can be either <Entity Container Name>.<Entity Set Name> 또는 <Entity Set Name> 입니다.or <Entity Set Name>.

objectEntityKey 있고 entitySetName 값이 있으면 EntitySet 엔터티 키의가 EntitySet entitySetName 및 엔터티 컨테이너 이름을 기반으로 하는와 일치 해야 합니다.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.

적용 대상

추가 정보