小编Joe*_*oey的帖子

将子对象绑定到DataField和DataSource

class A 
{ 
  int ID; 
  B ClassB; 
}

class B 
{ 
  string Title; 
}
Run Code Online (Sandbox Code Playgroud)

使用上面的模拟类作为示例 - 我有一个动态创建的GridView.为此我绑定(添加到Columns集合)X数量的BoundFields,然后将一个集合分配给DataSource,但是,我的子对象没有绑定.

在绑定列的数据区域属性设置为"ClassB.Title"和数据源是A型的对象的集合,但它不断抛出异常"的字段或属性名称为'ClassB.Title’未选定的发现数据源. "

有什么想法?

干杯

c# asp.net

5
推荐指数
1
解决办法
5678
查看次数

数据层重构

我控制了一些实体框架代码,并希望重构它.在我这样做之前,我想检查一下我的想法是否正确,我不会错过实体框架的做事方式.

示例1 - 子查询与加入

在这里,我们在As和B之间有一对多.除了下面的代码难以阅读,它还效率低吗?

from a in dataContext.As
where ((from b in dataContext.Bs
        where b.Text.StartsWith(searchText)
        select b.AId).Distinct()).Contains(a.Id)
select a
Run Code Online (Sandbox Code Playgroud)

例如,使用联接并执行类似的操作会更好吗?

from a in dataContext.As
where a.Bs.Any(b => b.Text.StartsWith(searchText))
select a
Run Code Online (Sandbox Code Playgroud)

示例2 - 显式连接与导航

在这里,我们在As和B之间有一对多,在B和C之间有一对多.

from a in dataContext.As
join b in dataContext.Bs on b.AId equals a.Id
join c in dataContext.Cs on c.BId equals b.Id
where c.SomeValue equals searchValue
select a
Run Code Online (Sandbox Code Playgroud)

是否有充分的理由使用显式连接而不是浏览数据模型?例如:

from a in dataContext.As
where a.Bs.Any(b => b.Cs.Any(c => c.SomeValue == searchValue)
select a
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

5
推荐指数
1
解决办法
132
查看次数

标签 统计

c# ×2

asp.net ×1

entity-framework ×1