如何在LINQ中进行左连接

时间:2014-09-17 15:13:58

标签: c# linq entity-framework gridview

我是LINQ和EF的新手。我有一个方法用于设置gridView的数据源。

public static List<PolicyLimit> GetAll(int policyID, int limitType) {
        List<PolicyLimit> limits = null;

        limits = (from x in DbContextHelper.DbContext.PolicyLimit.Include("Limit")
                  //.Include("ClaimLimit")

                  join s in DbContextHelper.DbContext.ClaimLimit on x.PolicyID equals s.PolicyID into abc
                  from subabc in abc.DefaultIfEmpty()


                  where x.PolicyID == policyID 
                  select  x ).Take(100).ToList<PolicyLimit>();

        return limits;
    }

这种方法没有我放置的连接就可以正常工作。我在网格中添加了3个新列,这些列在第3个表中找到,我试图加入。

我添加了一个&#39; PolicyID&#39;将字段链接到我的主表&#39; PolicyLimit&#39;。请记住,此方法已创建。我只想包含第3个表中的值来绑定我的新列。

目前,由于第二个表是使用INCLUDE链接的,因此在我的gridview代码中我只有

<asp:Label ID="txtDescription" runat="server" MaxLength="50" Text='<%# Bind("Limit.LimitDescription") %>'></asp:Label>

我希望能够对ClaimLimit表做同样的事情。绑定(&#34; ClaimLimit.CloumnName&#34;)

我尝试在模型图中创建一个关联,但是没有成功,所以我试图在我的LINQ中进行LEFT连接但是当我将我的选择更改为

select new{x, subabc.SomeColumn}).Take(100).ToList<PolicyLimit>();

它抱怨...不知道从哪里开始。

0 个答案:

没有答案