asp.net mvc-在mvc视图模型中执行计算



尝试在视图模型中执行计算。我有两个捐赠列,希望将它们添加到视图模型中。

这在ViewModel类中:

[DataType(DataType.Currency)]
public decimal ttlDonation
{
  get { return Donation.GetValueOrDefault() + GuestDonation.GetValueOrDefault(); }
}

Viewmodel构建良好,并且使用(modelItem => item.ttlDonation)在剃刀视图中正确显示。问题是,当我试图在控制器中用LINQ查询求和这个表达式时,如下所示:

var DonateTTl = GuestViewModel.Sum(f => f.ttlDonation);

然后我的代码抛出一个错误:

LINQ to Entities中不支持指定的类型成员"ttlDonation"。。。

我想知道做这件事的最佳方法。我还在我的控制器中尝试了这一点(如下(,在那里我将视图模型稍微更改为基本get;设置但它仍然不起作用。最好的方法是什么?我应该对我的原始模型而不是视图模型进行计算吗?

var GuestViewModel = guests.Select(g => new GuestIndexViewData
{
  ID = g.ID,
  FRID = g.FRID,
  FirstName = g.FirstName,
  LastName = g.LastName,
  Company = g.Company,
  email = g.email,
  Donation = g.Donation,
  GuestFirstName = g.GuestFirstName,
  GuestLastName = g.GuestLastName,
  GuestCompany = g.GuestCompany,
  Guestemail = g.Guestemail,
  GuestDonation = g.Donation,
  Attended = g.Attended,
  RSVP = g.RSVP,
  Guest3 = g.Guest3,
  ttlDonation = (g.GuestDonation.GetValueOrDefault() + g.Donation.GetValueOrDefault())
}).OrderBy(f => f.FRID);
var DonateTTl = GuestViewModel.Sum(f => f.ttlDonation);

我知道我可以找到一种方法来做到这一点,但我正在寻找标准/性能方面的最佳方法。

我认为挑选它会奏效:

var DonateTTl = GuestViewModel.Select(vm => vm.ttlDonation).Sum();

相关内容

  • 没有找到相关文章

最新更新