繁体   English   中英

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

[英]How to alter a single property when fetching a set of objects with EF?

假设我们要获取一堆帐户,但我们想隐藏数字。 有没有一种方法可以将每个元素的属性A设置为某种值?

IEnumerable<Account> accounts = context.Accounts;
foreach(Account accout = accounts)
  account.Number = Guid.Empty;
return accounts;

我想看类似这样的伪代码。

return context.Accounts
  .Alter(account => account.Number = Guid.Empty);

只需使用:

return context.Account.ToArray().Select(acc=>
{
  acc.Number=Guid.Empty; 
  return acc;
});

您只能在内存中执行此操作,因此这不是数据库选择。

另一种方法是使用此列作为空指南在数据库中创建视图,然后直接从中选择。

像这样:

var accounts = context.Accouts
  .Select(a => new Account
  {
    Number = Guid.Empty,
    Prop1 = a.Prop1,
    // map other properties
  });
IEnumerable<Account> accounts = context.Accounts;
accounts.Foreach(account => { account.Number = Guid.Empty; });
return accounts;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM