0

結合したい 2 つのテーブルが GridView に表示されます

foo
fooID  fooName barID
1      Alice   2
2      Bob     1
3      Charlie 1

bar
barID  barTitle
1      Developer
2      Project Manager

(関係と制約はデータベースで定義されています)

fooこのような出力用のGridViewがあります

Name    Title
Alice   2
Bob     1
Charlie 1

しかし、私は次を見てみたい

Name    Title
Alice   Project Manager
Bob     Developer
Charlie Developer

明らかに、私の SQL は次のようになります。

select fooName as Name, barTitle as Title
from foo join bar on foo.barid = bar.barid

コードの奥深くに埋もれているのは、次のとおりです。

FooDAL.cs

// ...
namespace ourDAL{
// ...
public class fooDAL : ICRUD <foo>, IDisposable //ICRUD is just an interface
{
// ...
  ourPoco context; // ourPoco was auto generated by a template from our  
                   // database and an EDMX file.

  public fooDAL()
  {
      context = new ourPoco;
  }
// ...
    public IList<Cfoo> FindAll()
    {
        return (from c in context.foo
                select c).ToList<foo>();
    }
// ...

ここでは、Linq で Join を作成できるはずですが、その方法がわかりません。結合を処理するように Linq コードを変更するにはどうすればよいですか?

4

1 に答える 1

1

次のクエリを使用できます。

select  a.fooName as Name, b.barTitle as Title from foo a inner join bar b
on a.barid= b.barid

グリッドでも変更する必要があります

<asp:BoundField DataField="BarID" HeaderText="Title" />

<asp:BoundField DataField="Title" HeaderText="Title" />

同等の LINQ クエリは次のようになります。

var a = (from p in foo 
            join q in bar 
            on p.barid equals q.barid 
            select new { Name= p.fooName , Title = q.barTitle }).ToList();
于 2013-03-01T04:25:49.137 に答える