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 имеет значение 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 имени контейнера сущности.