0

私はデータベースベースの最初のアプリケーションを持っているので、自家製のモーダルはなく、自動的に作成されたものだけです。HTMLテーブル/リストの単一行の選択からの1つと多くの部分を単一のビューに表示したいのですが、再作成されたMS Accessクエリでうまく機能するSQLは次のとおりです-いくつかの括弧:

SELECT Facilitiy.FacilityName, Facilitiy.FacilityImage, FacilityDetail.FacilityDetailDescription
FROM FacilityDetail INNER JOIN Facilitiy ON FacilityDetail.FacilityDetailID = Facilitiy.FacilityFK
WHERE FacilityFK = id

そして、リストの正しい多くの部分を私に与えるLINQ:

from fd in db.FacilityDetails
join f in db.Facilities on fd.FacilityID equals f.FacilityFK
where f.B FacilityFK == id
select f

SQLのようにそれを行うことを望んでいましたが、表示するビューに入れることができるモーダルを作成する必要があります:

施設イメージ(片面) | 施設名(片面) | FacilityDetailDescription(多面)

このようなことをするだけで簡単にできると聞きましたか???

from fd in db.FacilityDetails.Include("Facilities")

しかし、違いはないようです!

新しいカスタム モデルを作成する必要があると考える理由は何ですか? もしそうなら、私はそれをどのように書きますか?

私はこのようなことを試しましたが、うまくいきません。

public class FacilitiyDetails
{
    public string FacilitiesDescription { get; set; }
    public string FacilitiesImage { get; set; }
    public string BeachFacilitiesDescription { get; set; }
{

ここで何をすればいいのかわからない!

4

1 に答える 1

0

はい、複数のタイプを表示したいので、カスタムモデルが必要になります。次のようなものが必要になります。

public class FacilityModel
{
    public Facility Facility { get; set; }
    public List<FacilityDetails> FacilityDetails { get; set; }
}

上記のクラスに基づいており、すでにファシリティクラスがあると想定しています。次に、LINQを変更して、最初にファシリティの詳細を取得する必要があります。

var facility = (from f in db.Facilities
                 where f.FacilityID == id
                 select f)
               .FirstOrDefault(); //just being safe here, 
                                  //if it's null, you'll want to escape out of
                                  //the code below

FacilityDetails次に、次の手順を実行して、その機能に相当するものをすべて取得する必要があります。

var facilityDetails = (from fd in db.FacilityDetails
                      where fd.FacilityFK == id
                      select fd).ToList()

次に、次の手順でモデルの新しいインスタンスを作成できます。

var model = new FacilityModel
            {
                Facility = facility,
                FacilityDetails = facilityDetails
            };


于 2012-05-01T08:44:05.933 に答える