C# 如何在使用EF获取一组对象时更改单个属性?

C# 如何在使用EF获取一组对象时更改单个属性?,c#,entity-framework,linq,C#,Entity Framework,Linq,假设我们正在获取一组帐户,但我们想隐藏这些数字。有没有办法将每个元素的属性a设置为某个值 IEnumerable<Account> accounts = context.Accounts; foreach(Account accout = accounts) account.Number = Guid.Empty; return accounts; 大概是这样的: var accounts = context.Accouts .Select(a => new Acco

假设我们正在获取一组帐户,但我们想隐藏这些数字。有没有办法将每个元素的属性a设置为某个值

IEnumerable<Account> accounts = context.Accounts;
foreach(Account accout = accounts)
  account.Number = Guid.Empty;
return accounts;
大概是这样的:

var accounts = context.Accouts
  .Select(a => new Account
  {
    Number = Guid.Empty,
    Prop1 = a.Prop1,
    // map other properties
  });
IEnumerable accounts=context.accounts;
accounts.Foreach(account=>{account.Number=Guid.Empty;});
归还账户;
只需使用:

return context.Account.ToArray().Select(acc=>
{
  acc.Number=Guid.Empty; 
  return acc;
});
您只能在内存中执行此操作,因此这将不是数据库选择


另一种方法是在数据库中创建一个视图,将此列作为空向导,并直接从中进行选择

用Jasen Care来详细说明一下?我已经访问了提供的链接,但没有得到更明智的…嗯,这就是我现在做的。但是如果这个对象有很多属性,而我只需要改变一个属性,那么它的效率就非常低。。。我希望这里有一个短裤。:)编码时间。我需要对一堆物体这样做。它们是looong.AFAIK,不能使用Linq to Entity框架将“替换”逻辑移动到数据库,因为这是对对象的操作。“数据库视图”或“匿名对象选择”(仅显式选择所需字段,并跳过该数字)是最佳选择
IEnumerable<Account> accounts = context.Accounts;
accounts.Foreach(account => { account.Number = Guid.Empty; });
return accounts;
return context.Account.ToArray().Select(acc=>
{
  acc.Number=Guid.Empty; 
  return acc;
});