簡體   English   中英

表格 <T> .DeleteAllOnSubmit()不存在?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM