我正在使用WCF數據服務客戶端,並嘗試添加一個對象到我的datacontext(EntityFramework)。該對象被添加,但是我不能在之後使用該ID。有沒有可能觸發SaveChanges方法後,對象直接獲取自動生成的ID?如何在AddObject上添加數據時如何返回ID?
Order order=new Order();
order.name="test";
context.AddObject("Order", order);
if (await context.SaveChanges()) //Extension method on my context to save changes async
{
System.Diagnostics.Debug.WriteLine(order.id); //output: 0
}
我的擴展方法是這樣的:
public partial class MyEntities
{
public async Task<bool> SaveChanges()
{
var queryTask = Task.Factory.FromAsync(this.BeginSaveChanges(null,null), asResult =>
{
return(asResult.IsCompleted);
});
return await queryTask;
}
}
我想也延長了AddObject
方法,但這種計算策略也返回一個0值:
internal async void AddObject<TResult>(object entity) where TResult : IExtend
{
base.AddObject(entity.ToString().Split('.').Last(), entity);
if (await this.SaveChanges())
{
System.Diagnostics.Debug.WriteLine(((TResult)entity).id); //output: 0
}
}
事實證明我在Savehanges函數中使用了EndSaveChanges函數。感謝您指點我正確的方向。 – 2013-04-10 08:13:52