【问题标题】:Cant bind complex property to gridview with entity framework无法使用实体框架将复杂属性绑定到gridview
【发布时间】:2012-05-30 08:24:44
【问题描述】:

我有以下代码应该将一些数据绑定到 gridview 但它不起作用。

地区经理对象有一个品牌。 正如您在屏幕截图中看到的,品牌已正确填写了数据。

 private void LoadData()
        {
            List<DealerDistrictManager> listDealerDistrictManager = DistrictManagerBL.GetAllDealersWithDistrictManagers();
            DistrictManagersGrid.DataSource = listDealerDistrictManager;
            DistrictManagersGrid.DataBind();


     <asp:BoundColumn DataField="DistrictManagerId" Visible="False"></asp:BoundColumn> 
        <asp:BoundColumn DataField="Brand.Name" meta:resourcekey="BrandHeader"></asp:BoundColumn>


 public class DealerDistrictManager
    {
        public int DistrictManagerId { get; set; }
        public string Nuteres { get; set; } 
        public string DealerNumber { get; set; }
        public virtual Brand Brand { get; set; }
        public int DistrictNumber { get; set; }
        public string Name { get; set; }
    }

 public class Brand
    {
        public int BrandId { get; set; }
        public string Name { get; set; }
    }

更新1

public List<DealerDistrictManager> GetAllDealersWithDistrictManagers()
    {

            return  (from d in _context.Dealers
                      from m in _context.DistrictManagers
                      where d.Nuteres == m.DealerNuteres
                     select new DealerDistrictManager
                                { 
                                    DistrictManagerId= m.DistrictManagerId,
                                    Nuteres = d.Nuteres,
                                    DealerNumber = d.DealerNumber,
                                    Brand  = m.Brand,
                                    DistrictNumber = m.DistrictNumber,
                                    Name = m.Name

                                 }).ToList<DealerDistrictManager>(); 

    }

【问题讨论】:

  • 现在准备一个视图模型然后通过例如将实体模型映射到视图模型不是更容易一点。自动映射器?您可以“展平”视图模型类,并可能完全避免此错误。 :) 但是更多关于主题,您可以尝试预先加载品牌,看看错误是否仍然存在。
  • 查看模型?自动映射器?我不明白,我们想在这里避免复杂的代码。有更简单的方法吗?
  • 我用从上下文中获取数据的代码更新了问题。
  • 我在 ASP 方面不是很有经验,但可以在 ASP 中做到这一点:。我知道这在 WPF 数据绑定方案中是可能的。您有一个主对象并“导航”到继承类的属性。确定 ASP 可以做到这一点?
  • @YoupTube 这正是我所做的,如果你检查我的标记代码,但它不起作用,奇怪的是在另一个页面中我有相同的场景但使用不同的对象并且它绑定了数据正确到网格。

标签: c# linq entity-framework gridview


【解决方案1】:

This post 也谈到了相同/相似的问题。它“随机”发生的地方。提问者找到的解决方案是使用:

<%#Eval("contentsection.Id") %>

提到的帖子有很多答案(包括一个已接受的答案),我认为这些答案将澄清很多。

【讨论】:

  • 是的。是不是很奇怪!但我希望你忘记了奇怪,并对结果感到满意;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
相关资源
最近更新 更多