Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Database2Entities.SaveChanges()不工作_C# - Fatal编程技术网

C# Database2Entities.SaveChanges()不工作

C# Database2Entities.SaveChanges()不工作,c#,C#,我使用实体框架设置了一个.sdf数据库。我的代码如下。但是,当我尝试更新第一条记录时,它使用console.writeline()正确地显示了这一点,但是当我在visual studio中“显示表数据”时,我仍然可以看到原始值,它没有更新: static void Main(string[] args) { Database2Entities context = new Database2Entities(); DbSet<Product>

我使用实体框架设置了一个.sdf数据库。我的代码如下。但是,当我尝试更新第一条记录时,它使用console.writeline()正确地显示了这一点,但是当我在visual studio中“显示表数据”时,我仍然可以看到原始值,它没有更新:

static void Main(string[] args)
    {
        Database2Entities context = new Database2Entities();

        DbSet<Product> products = context.Products;

        foreach (var product in products)
        {
            Console.WriteLine(product.name);
        }

        Console.WriteLine("---");

        Product prod = products.First();

        prod.name = "Faux lion fur hat";

        context.SaveChanges();

        products = context.Products;

        foreach (var product in products)
        {
            Console.WriteLine(product.name);
        }

        Console.Read();
    }
/*Output:
gloves
scarves
coates
lionFurHat
boots
---
Faux lion fur hat //This doesn't show in the diagram.
scarves
coates
lionFurHat
boots*/
static void Main(字符串[]args)
{
Database2Entities上下文=新Database2Entities();
DbSet products=context.products;
foreach(产品中的var产品)
{
Console.WriteLine(产品名称);
}
Console.WriteLine(“--”);
Product prod=products.First();
prod.name=“人造狮子皮帽子”;
SaveChanges();
产品=上下文。产品;
foreach(产品中的var产品)
{
Console.WriteLine(产品名称);
}
Console.Read();
}
/*输出:
手套
围巾
科茨
狮子帽
靴子
---
人造狮子皮帽子//图中未显示。
围巾
科茨
狮子帽
靴子*/

我不确定这是否是真正的问题,但可能是旧的上下文;正在重新分配给相同的产品,请尝试使用不同的变量,如

var productsUpdated=context.Products;
你也可以尝试刷新它


但是,对于Database2实体,该方法不存在。您仍然必须清除现金。显然,这是一个现金问题。您可以尝试再次启动上下文
context.Refresh(RefreshMode.StoreWins, Products);