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
Представляет имя набора сущностей, которое можно уточнить именем контейнера сущностей (необязательно).
Исключения
Примеры
В этом примере добавляется новый продукт и сохраняются изменения в базе данных.
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
и .