私はEntity Framework 5.0を使用しており、モデルからデータベースを作成しました。以下はedmxダイアグラムのスクリーンショットです。パラメータを渡してLISTをクエリする方法は?
私は、データの構造を下記に向けて働いています:
:与えられたクライアントIDでくれそう、私は以下のように私のモデルをモデル化しているクライアントIDとそのTReportsに属しTheaderのリストを与えます
public class TReportHeaderModel
{
public int ID { get; set; }
public int ClientID { get; set; }
public string THeaderTitle { get; set; }
public int RowNumber { get; set; }
public IList<TReportModel> TReports { get; set; }
}
public class TReportModel
{
public int ID { get; set; }
public string TReportName { get; set; }
public string URL { get; set; }
public int RowNumber { get; set; }
}
は、だから私はTheaders
を取得するために照会し、特定のクライアントIDのためにその各レポートとき:私は
public IList<TReportHeaderModel> GetHeadersByClient(int ClientID)
{
using (var connection = new TReportEntitiesConnection())
{
var clientHeaders= (from st in connection.THeaders
where ClientID == st.ClientID
select new TReportHeaderModel
{
ID=st.ID,
THeaderTitle=st.THeaderTitle,
RowNumber=st.RowNumber
}).ToList();
return (clientHeaders);
}
}
し、各タイトルのレポートのリストを取得するために、私は立ち往生午前場所です--->
public IList<TReportModel> GetChildReportsByHeader(int THeaderID)
{
using (var connection = new TReportEntitiesConnection())
{
// ....
}
}
代わりにGETによってそれを分離する:与えられたクライアントIDのための最初のヘッダをリストアップ最初にクライアントがヘッダーを作成し、ヘッダーIDでレポートを取得します。これを1つの方法で組み合わせることは可能ですか?私はLINQクエリを初めて知っていますので、ご理解ください。
クライアントID = 2
ヘッダ1
- TReportName
- URL
ヘッダ2
:以下UI実装のための理想的な構造であります
- TReportName
- URL
、どのようにだろう私はモデルを返しますか? –
'clientHeaders'は' List 'ですので、返すことができます。これは 'TReportModel'sを含む' TReportHeaderModel'を生成するので、あなたの "理想的な構造"です。 –
私はこのメソッドを持っているので、実際にはメソッド 'GetChildReportsByHeader、右は必要ありませんか? –