Поделиться через


ObjectContext.AddObject(String, Object) Метод

Определение

Добавляет объект в контекст объекта.

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

Представляет имя набора сущностей, которое можно уточнить именем контейнера сущностей (необязательно).

entity
Object

Добавляемый объект Object.

Исключения

Параметр entity имеет значение null.

-или-

Имя entitySetName не уточнено.

Примеры

В этом примере добавляется новый продукт и сохраняются изменения в базе данных.

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

Комментарии

Вызовите метод AddObject для объекта ObjectContext, чтобы добавить объект в контекст объекта. Это можно сделать, если объект является новым объектом, который еще не существует в источнике данных. Дополнительные сведения см. в разделе Присоединение и отсоединение объектов.

Объекты добавляются в диспетчер ObjectStateManager в состоянии Detached, Deleted или Added.

Если создается новый объект, связанный с другим объектом в контексте объекта, добавьте объект с помощью одного из следующих методов.

  • Вызовите метод Add для коллекции EntityCollection<TEntity> и укажите связанный объект. Выполните это действие для связей «один ко многим» или «многие ко многим».

  • Задайте свойство Value объекта EntityReference<TEntity> для связанного объекта. Выполните это действие для связей «один к одному» или «многие к одному».

Дополнительные сведения см. в статье Создание, добавление, изменение и удаление объектов.

Если объект находится в отсоединяемом состоянии, он не должен иметь EntityKey.

Для формата используются следующие правила entitySetName :

  • DefaultContainerName Если свойство имеет значение null, то entitySetName должен быть полностью определен как в <поле Имя> контейнера сущности.<Имя набора сущностей>.

  • Если DefaultContainerName значение не nullравно , то entitySetName может быть именем> контейнера сущности<.<Имя> набора сущностей или <имя набора сущностей>.

object Если имеет EntityKey значение и entitySetName , то EntitySet ключ сущности должен соответствовать объекту EntitySet , который был найден на основе имени контейнера сущности entitySetName и .

Применяется к

См. также раздел