[英]ITable<T>.DeleteAllOnSubmit() is absent?
據我ITable<T>
接口在ITable
接口和Table<T>
類中不存在DeleteAllOnSubmit()
方法。
我將自己執行以下操作:
public static void DeleteAllOnSubmit<T>(this ITable<T> table, IEnumerable<T> entities)
{
entities.ForEach(entity=>table.DeleteOnSubmit(entity);
}
問題1:這里有陷阱嗎? 如果這么簡單,微軟會自己實施。
問題2:為什么沒有立即實現?
看一下Table<TEntity>.DeleteAllOnSubmit<TSubEntity>()
,就可以看到:
public void DeleteAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities) where TSubEntity: TEntity
{
if (entities == null)
{
throw Error.ArgumentNull("entities");
}
this.CheckReadOnly();
this.context.CheckNotInSubmitChanges();
this.context.VerifyTrackingEnabled();
foreach (TEntity local in entities.ToList<TSubEntity>())
{
this.DeleteOnSubmit(local);
}
}
所以,我想說:您的實現就可以了。 順便說一句: IEnumerable<T>
沒有ForEach
擴展方法。
或者,您可以實現一些效果。
public static void DeleteAllOnSubmit<T>(this ITable<T> table, IEnumerable<T> entities)
{
table.Context.GetTable<T>().DeleteAllOnSubmit(entities);
}
只需通過ITable<T>
到上下文特定的表並調用其DeleteAllOnSubmit()
。 這樣,您枚舉和刪除所有內容的方式以及上下文本機處理的方式就不會發生偏差。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.