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

Комментарии

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

Объекты добавляются ObjectStateManager в состояние или Added в состоянииDetachedDeleted.

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

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

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

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

Правила для entitySetName формата приведены следующим образом:

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

  • В противном DefaultContainerName случае может быть имя<> контейнера сущностей.nullentitySetName<Имя> набора сущностей или <имя> набора сущностей.

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

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

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