2012-04-23 12 views
1

私はSQL Serverの2つのテーブルを持っているが、AとBのBは、文書のリストであり、Aは、プロジェクトがB.グリッドへのバインディングのエンティティを非正規化しますか?

A 
___________ 
AId int PK, 
BId int, 
Include bit 

B 
___________ 
BId int PK, 
BDocNumber varchar(10), 
BName varchar(128) 

内の行を含める必要があるかどうかを示すデータが含まれている私はPOCOSを持っていると言いますAとBが、最終的に

  1. 私は、ナビゲーションプロパティとしてBを設定することができ、私は(、BDocNumber、BNAME含める)の後、私は両方からのデータが含まれているDevExpress社のグリッドにバインドできる何かがあるよ何、私はグリッドのためにそれを平らにする方法を知らない(DevExpress ASPxGridView、サーバモード)

  2. エンティティの分割についても調べましたが、AIdの代わりにBIdに参加したいので動作しません。

1または2のいずれかの解決策は許容されますが、両方についての学習はすばらしいことになります。

おかげ

答えて

1

何を持っていることはあなたがあなたのDevExpress社のグリッドにアクセスするにBで「持っている - 」関係または1対1のナビゲーションプロパティです。あなたは次のように対処するためにPersontの1対1の関係のためにあなたのNavigationProperty.FieldNameに

セイをごFieldNameプロパティを設定することによってこれを行うことができます。

public class Person 
    { 

     public int ID { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public virtual Address Address { get; set; } 
    } 

    public class Address 
    { 
     public int ID { get; set; } 
     public string StreetAddress { get; set; } 
     public string City { get; set; } 
     public string State { get; set; } 
     public string Zip { get; set; } 

    } 

あなたのaspxページであなたのGridViewを含めます人とアドレスナビゲーションプロパティのStreeAddressプロパティの両方が、人はあなたがそうあなたが設定されるだろうにあなたのGridViewをバインドするテーブルAとアドレスされてテーブルBであること。この場合、この

 <dx:ASPxGridView ID="ASPxGridView1" runat="server"> 
     <Columns> 
      <dx:GridViewDataTextColumn FieldName="FirstName" VisibleIndex="0"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="LastName" VisibleIndex="1"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Address.StreetAddress" VisibleIndex="1"> 
      </dx:GridViewDataTextColumn> 
     </Columns> 
    </dx:ASPxGridView> 

ようになります。あなたのフィールド名をB.FieldToDisplay。

希望すると便利です。

関連する問題