0

私はかなり新しくORMsADO.NET EF特にです。私はCode Firstアプローチを使用しています。私の中にこれらの2つのテーブルがありますDB

Material:

public class Material
    {
        [Required]
        [MaxLength(10)]
        public string Code { get; set; }


        [MaxLength(40)]
        public string Color { get; set; }

        [MaxLength(40)]
        public string Description { get; set; }

        [MaxLength(255)]
        public string Picture { get; set; }

        public long MaterialTypeId { get; set; }
        public virtual MaterialType MaterialType { get; set; }

    }

MaterialType:

public class MaterialType 
  { 
      [MaxLength(40)] 
      public string MatType { get; set; }

      public virtual ICollection<Material> Materials { get; set; }
  }

そして、 which isを除くDataGridViewすべての情報を入力する場所があり、そのようなもの、およびテーブルから取得する必要があるものがあります。これまでのところ唯一のユーザーであり、今ではコード/クエリを作成する方法がわからないため、2番目のテーブルからの情報を入力できます。には、非表示の列があります。MaterialMatTypeLeatherPlasticMaterialTypeFKSELECT *..DataGridViewDataGridViewMaterialTypeId

4

1 に答える 1

2

DataTransferObjects(DTO) を使用します。

public class MaterialDTO
{
        public string Code { get; set; }

        public string Color { get; set; }

        public string Description { get; set; }

        public string Picture { get; set; }

        public string MatType { get; set; }
}

次に、情報を入力して完了します。

List<MaterialDTO> listForGrid = context.Material.Select(e=>new MaterialDTO(){Code=e.Code, Color = e.Color, Description = e.Description, Picture = e.Picture, MatType = e.MaterialType.MatType}).ToList();

この例では、DB から Table からデータ全体を取得し、Materialそれを に配置しList<MaterialDTO> listForGridます。テーブル全体ではなく一部のデータのみを取得するために、Whereの前に置くこともできます。Select

次に、このデータをグリッドにバインドします...

于 2013-02-19T15:43:14.910 に答える