ObjectContext.AddObject(String, Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将对象添加到对象上下文。
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实体键的 必须与根据 和 实体容器名称找到的 entitySetName
匹配EntitySet。