【问题标题】:Column name Entity Framework base Repository列名 Entity Framework base Repository
【发布时间】:2012-11-06 19:57:44
【问题描述】:

IRepositoryBase

IQueryable<T> GetAll(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes);

RepositoryBase

 public IQueryable<T> GetAll([OptionalAttribute][DefaultParameterValueAttribute(null)]Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includes)     
 {
   var set = CreateSet().IncludeMultiple(includes);
   return (predicate == null) ? set : set.Where(predicate);            
 }

IAccountService

IEnumerable<int> GetAllReferenceIds();

帐户服务

public IEnumerable<int> GetAllReferenceIds()       
{    
  var accountOwners = _accountOwnerRepository.GetAll();
  return accountOwners.Select(m => m.ReferenceId).ToList();
}

帐户控制器

public ActionResult ReferenceIdPartial()      
{

ViewData["AccountOwners"] = accountOwnerService.GetAllReferenceIds();

return PartialView();

}

MVC 部分视图 - devexpress 组合框 mvc 扩展

settings.Properties.Columns.Add("ReferenceId", "Reference Id", Unit.Percentage(100));

错误 - 未找到列 ReferenceId

我正在通过 GetReferenceIds() 发送一个 int 集合

有没有办法从 Controller 调用列。像 AccountOwner(a=>a.ReferenceIds, select ReferenceIds) 这样的东西 - 我应该能够获取列名以及数据。

感谢您的宝贵时间。

【问题讨论】:

  • 谁会抛出异常“column ReferenceId Not found”?组合框代码还是来自GetAllReferenceIds 方法?
  • 它来自组合框。谢谢

标签: asp.net-mvc-3 entity-framework select repository columnname


【解决方案1】:

这是一头雾水,我实际上只理解你的最后一句话“我应该能够得到列名以及数据” - 并且可以想象如果你绑定一个集合到一个组合框(我不知道 DevExpress 组合框扩展) 组合框控件想要一个具有 属性名称/属性值 对的 class 对象集合,而不仅仅是一个值集合 (int)。所以,不用碰AccountService 你可以试试:

public ActionResult ReferenceIdPartial()      
{
    ViewData["AccountOwners"] = accountOwnerService.GetAllReferenceIds()
        .Select(i => new { ReferenceId = i });

    return PartialView();
}

ViewData["AccountOwners"] 现在将持有(匿名)对象的集合。每个对象都有一个名为 ReferenceId 的属性,其值 i 从您从服务返回的 Id 中提取。

【讨论】:

  • 嗨 Slauma - 感谢您的回复。当我这样做时,我仍然得到所有的列。然后我可以得到 referenceId 列。但我不想获得所有列 - 由于列数约为 45,它会影响应用程序的速度。
  • @tjRulz:但GetAllReferenceIds 只返回IEnumerable&lt;int&gt;。它只是一个数字列表。那怎么可能包含所有列?
  • 嗨,斯劳马。对不起。在阅读您的回复之前,我在最后更改了代码。然后我可以使用上面的代码。再次感谢。
猜你喜欢
  • 2014-09-17
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多