C# 如何在更新过程运行后立即重新查询更新的值

C# 如何在更新过程运行后立即重新查询更新的值,c#,asp.net-mvc-3,entity-framework,linq-to-entities,C#,Asp.net Mvc 3,Entity Framework,Linq To Entities,据我所知,以下代码对“MySite”数据库所做的更改是即时的: public List<vcData> UpdateDisplayAndUrl(List<vcData> vcDataList) { foreach (vcData vcData in vcDataList) { _entities.ExecuteStoreCommand("UPDATE vcData SET DisplayItem = {0

据我所知,以下代码对“MySite”数据库所做的更改是即时的:

  public List<vcData> UpdateDisplayAndUrl(List<vcData> vcDataList)
    {
        foreach (vcData vcData in vcDataList)
        {
            _entities.ExecuteStoreCommand("UPDATE vcData SET DisplayItem = {0}, DisplayUrl = {1} WHERE ID = {2} ", vcData.DisplayItem, vcData.DisplayUrl, vcData.ID);
        }                   
        return GetTableData();
    }
问题:
GetTableData()
方法似乎不返回更新的值,只返回以前的(未更新的)值


我不熟悉LINQ、实体框架和MVC,所以我很确定我缺少一些基本的东西。

在查询之前,需要将
MergeOption
设置为
OverwriteChanges
。请仔细阅读中介绍的合并选项,以获得清晰的想法

public List<vcData> GetTableData()
{
    var currentMergeOption =  _entities.vcData.MergeOption;
    _entities.vcData.MergeOption = MergeOption.OverwriteChanges;

    var result = (from td in _entities.vcData
                  where td.SiteID == "MySite" 
                  select td).ToList();

    //revert the change
    _entities.vcData.MergeOption = currentMergeOption;

    return result;
} 
public List GetTableData()
{
var currentMergeOption=_entities.vcData.MergeOption;
_entities.vcData.MergeOption=MergeOption.OverwriteChanges;
var结果=(来自td in_entities.vcData
其中td.SiteID==“MySite”
选择td.ToList();
//恢复更改
_entities.vcData.MergeOption=当前合并选项;
返回结果;
} 

在查询之前,您需要将
合并选项设置为
覆盖更改。请仔细阅读中介绍的合并选项,以获得清晰的想法

public List<vcData> GetTableData()
{
    var currentMergeOption =  _entities.vcData.MergeOption;
    _entities.vcData.MergeOption = MergeOption.OverwriteChanges;

    var result = (from td in _entities.vcData
                  where td.SiteID == "MySite" 
                  select td).ToList();

    //revert the change
    _entities.vcData.MergeOption = currentMergeOption;

    return result;
} 
public List GetTableData()
{
var currentMergeOption=_entities.vcData.MergeOption;
_entities.vcData.MergeOption=MergeOption.OverwriteChanges;
var结果=(来自td in_entities.vcData
其中td.SiteID==“MySite”
选择td.ToList();
//恢复更改
_entities.vcData.MergeOption=当前合并选项;
返回结果;
} 

Eranga,非常感谢。这似乎成功了。感谢您提供MSDN参考文章。Eranga,非常感谢。这似乎成功了。感谢您提供MSDN参考文章。
public List<vcData> GetTableData()
{
    var currentMergeOption =  _entities.vcData.MergeOption;
    _entities.vcData.MergeOption = MergeOption.OverwriteChanges;

    var result = (from td in _entities.vcData
                  where td.SiteID == "MySite" 
                  select td).ToList();

    //revert the change
    _entities.vcData.MergeOption = currentMergeOption;

    return result;
}