EntityKey属性只能设置为LINQ2Entities

本文关键字:LINQ2Entities 设置 属性 EntityKey | 更新日期: 2023-09-27 18:28:08

我遇到了一个奇怪的问题,我无法从DB中获取对象,然后重新附加它。我为其他项目写过这样的代码,但由于一些奇怪的原因,它在这个应用程序中引发了以下错误:

System.InvalidOperationException:只有当EntityKey属性的当前值为null时,才能设置该属性

这是我的代码:

        Entities.Customer customer;
        using (var context = new XXEntities())
        {
            IQueryable<Entities.Customer> query = from a in context.Customers select a;
                query = query.Where(c => c.CODE == "003046");
            customer = query.ToList()[0];
        }

        using (var context = new XXEntities())
        {
            context.Customers.AddObject(customer);
            context.SaveChanges();
        }

EntityKey属性只能设置为LINQ2Entities

在第二个区块中,

    using (var context = new XXEntities())
    {
      //context.Customers.AddObject(customer);
        context.Customers.Attach(customer);  
        context.SaveChanges();
    }

EntitySet.Add()表示添加一个对象。您希望添加一个现有对象。