1

对于我的每个表都有 Key 值,所以我的问题是如何获得 Key 属性?我想搜索我在参数中得到的那个对象,并通过这个更新的对象更新表。如何从表中找到我的对象?

public static void Update<TEntity>(TEntity UpdatedObject) where TEntity : class
        {
            DatabaseLinqDataContext ClientLinq = new DatabaseLinqDataContext(Patch);
            ClientLinq.GetTable<TEntity>()// I want to search that object i got in the paramater and update it. how do I find my object from the table?
            ClientLinq.SubmitChanges();
        }

任何想法?解决这个问题的正确方法是什么?

这个动作写在业务逻辑层中。

4

1 回答 1

0

有几个案例需要考虑。

如果实体实例之前已被此数据上下文加载,则只需调用 SubmitChanges。无需执行任何其他操作(此时将更新所有修改的实例)。

如果实体实例之前由不同的数据上下文加载,则需要制作一个不会被跟踪的新副本,然后按照下一个案例。

如果实体实例不是由数据上下文加载的(或者实例是上面的副本),那么您需要调用

  //attach the changes to the tracked object graph
dataContext.GetTable<T>().Attach(t, true);
  //if type uses optimistic concurrency, then you need to refresh
  //load the "original" state for the tracked object graph
dataContext.Refresh(t, RefreshMode.KeepCurrentValues);
dataContext.SubmitChanges();

或者,最好调用:

dataContext.GetTable<T>().Attach(tChanged, tOriginal);
dataContext.SubmitChanges();
于 2013-04-12T12:23:02.430 回答