列名实体框架库存储库

时间:2012-11-06 19:57:44

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

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();

的AccountService

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

的AccountController

public ActionResult ReferenceIdPartial()      
{

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

return PartialView();

}

MVC部分视图 - devexpress combobox mvc extension

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

错误 - 列ReferenceId未找到

我通过GetReferenceIds()

发送一个int集合

有没有办法从Controller调用列。比如AccountOwner(a =&gt; a.ReferenceIds,选择ReferenceIds) - 我应该能够获得列名和数据。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

这是一个黑暗的镜头,我实际上只能理解你的最后一句“我应该能够获得列名和数据” - 并且可以想象如果你绑定一个收集到一个组合框(我不知道DevExpress组合框扩展)组合框控件想要一个带有属性名称/属性值对的对象的集合而不是只有一个值集合(int)。因此,如果不触及AccountService,您可以尝试:

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

    return PartialView();
}

ViewData["AccountOwners"]现在将拥有一组(匿名)对象。每个对象都有一个名为ReferenceId的属性,从您从服务返回的ID中获取值i