C# 访问外键数据linq
我有一个简单的要求,如果通过sql查询完成。 我有一个表A,它是ID为Name的类别 表b是categoryItems,其外键为CategoryId、Name。 我使用linqdatasource和简单的select语句来显示表A中的数据C# 访问外键数据linq,c#,asp.net,linq,linqdatasource,C#,Asp.net,Linq,Linqdatasource,我有一个简单的要求,如果通过sql查询完成。 我有一个表A,它是ID为Name的类别 表b是categoryItems,其外键为CategoryId、Name。 我使用linqdatasource和简单的select语句来显示表A中的数据 select * from A (simple) 我现在有一个要求,我不想显示在第一位谁没有任何项目与他们相关联的类别。e从B中选择count*,其中CategoryId=>0 通过修改sql语句非常简单,我想知道是否可以通过使用任何现成的linq功能访问外
select * from A (simple)
我现在有一个要求,我不想显示在第一位谁没有任何项目与他们相关联的类别。e从B中选择count*,其中CategoryId=>0
通过修改sql语句非常简单,我想知道是否可以通过使用任何现成的linq功能访问外键关系数据并应用验证来实现
我就是喜欢
非常感谢 你可以试试这个
var categories = (from c in category select c).Select<Category>(x => x.categoryItems.Count() > 0);
这取决于您的对象,可以很好地完成此任务
或者,您也可以使用Where和more
您想在Category.CategoryItems上使用Any方法
如果计数>0,则Any返回true;如果计数=0,则返回false
方法:-
public void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
e.Result = categoriesWithItems = Context.Categories.Select(x => x.CategoryItems.Any());
}
我正在aspx页面中使用linqdatasource,是否可以使用它?是的,下面的博文将帮助您。
<asp:LinqDataSource ID="LinqDataSource1"
runat="server"
ContextTypeName="MyDataContext"
OnSelecting="LinqDataSource1_Selecting">
</asp:LinqDataSource>
public void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
e.Result = categoriesWithItems = Context.Categories.Select(x => x.CategoryItems.Any());
}