簡體   English   中英

避免重復Linq待處理插入?

[英]avoiding duplication of Linq pending inserts?

我可以防止同一對象被添加兩次,但是我仍然需要引用待處理的ID來添加其他相關對象。

在以下內容中,SomeData中的某些不同項目可能要兩次添加同一個人。 我可以跟蹤它,但是我仍然需要向待處理人員添加不同的項目信息。 我該如何管理?

   foreach(item i in SomeData)
      {
         var x = dc.People.Where(p.someprop==a...);
         if (x=null)
         { 
           Person p = new P(..);
           dc.People.InsertOnSubmit(p);
         }
         ...
         ...
      }

      dc.Submitchanges()

基本上,您需要檢查該實體是否已附加到上下文。 這是一個如何完成這項工作的示例:

public static void SafeAttachTo<T>(this ObjectContext context, string entitySetName, ref T entity) where T : class {
            ObjectStateEntry entry;
            bool isDetached;

            if (context.ObjectStateManager.TryGetObjectStateEntry(context.CreateEntityKey(entitySetName, entity), out entry)) {
                isDetached = entry.State == EntityState.Detached;
                entity = (T) entry.Entity;
            }
            else
                isDetached = true;

            if (isDetached)
                context.AttachTo(entitySetName, entity);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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