Freigeben über


ObjectContext.AddObject(String, Object) Methode

Definition

Fügt dem Objektkontext ein Objekt hinzu.

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)

Parameter

entitySetName
String

Stellt den Entitätssatznamen dar, der optional vom Entitätscontainernamen qualifiziert werden kann.

entity
Object

Der Object hinzuzufügende

Ausnahmen

Der entity Parameter ist null.

- oder -

Dies entitySetName gilt nicht.

Beispiele

In diesem Beispiel wird ein neues Produkt hinzugefügt und die Änderungen in der Datenbank gespeichert.

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);
    }
}

Hinweise

Rufen Sie AddObject das ObjectContext Objekt auf, um das Objekt dem Objektkontext hinzuzufügen. Gehen Sie dazu vor, wenn es sich bei dem Objekt um ein neues Objekt handelt, das noch nicht in der Datenquelle vorhanden ist.

Objekte werden dem ObjectStateManager In- DetachedDeleted oder Added Zustand hinzugefügt.

Wenn Sie ein neues Objekt erstellen, das mit einem anderen Objekt im Objektkontext verknüpft ist, fügen Sie das Objekt mithilfe einer der folgenden Methoden hinzu:

  • Rufen Sie die Add Methode für das EntityCollection<TEntity> zugehörige Objekt auf, und geben Sie das zugehörige Objekt an. Führen Sie dies für eine 1:n- oder n:n-Beziehung aus.

  • Legen Sie die Value Eigenschaft des EntityReference<TEntity> verknüpften Objekts fest. Führen Sie dies für eine 1:1- oder n:1-Beziehung aus.

Wenn sich das Objekt in einem getrennten Zustand befindet, darf es keine EntityKey.

Die Regeln für das entitySetName Format sind wie folgt:

  • Wenn die DefaultContainerName Eigenschaft lautet null, muss die entitySetName Eigenschaft vollständig als <Entitätscontainername> qualifiziert sein.<Entitätssatzname>.

  • Wenn DefaultContainerName nichtnull, kann dies entweder <der Name des Entitätscontainers> sein.entitySetName<Entitätssatzname> oder <Entitätssatzname>.

Wenn die object Eigenschaft einen EntityKey Wert aufweist und entitySetName einen Wert aufweist, muss der EntitySet Entitätsschlüssel mit dem EntitySet gefundenen Wert übereinstimmen, der basierend auf dem Containernamen und dem entitySetName Entitätscontainernamen gefunden wurde.

Gilt für:

Weitere Informationen