2012-05-01 5 views
0

私はデータベースベースの最初のアプリケーションを持っているので、手作りのモーダルはありません。自動的に作成されたものだけです。私は単一のビューで、単一の行から選択したhtmlテーブル/リスト内の単一のビューを表示したいと思います。ここでは再作成されたMS AccessクエリでうまくいくSQLがあります - 一部の括弧:1対多、1ビューカスタムモデルが必要ですか?

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

、私にリストの正しい多くの部分与えLINQ:私は種類のSQLはありませんが、私は私がに置くことができ、モーダルを作成する必要があるとして、それはそれを行うだろう期待していた

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

を表示するビュー:

FacilityImage(片面)|施設名(片側)| 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; } 
{ 

私はここで何をすべきかはわかりません!

+0

あなたが示したことができますエンティティモデルを私たちに教えてください。 –

+0

見ることはあまりありません。データベーステーブルは2つだけです。利用可能なすべての「施設」と、メインテーブルの「id」に関連するすべての施設がある中間テーブルです。 1人のIDには多くのFacilityDeatailsがあり、1つのFacilityには多くのFacilityDeatailsがあります。 – Bojangles

答えて

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 
      }; 


+0

私が話していたことを理解していただきありがとうございます!質問をする方法についてはかなりの間苦労しましたが、頭の上でハンマーを叩きました!私は実際には私が最後に思ったよりも近くにいた。もう一度おねがいします。よく説明してくれてありがとう! – Bojangles

+0

Hehe問題はありません、私はあなたが過去に仕事でそれらのまったく同じ問題を抱えていたので、私はそれらに関連付けることができるので、あなたが意味するものだけを知っている!お役に立てて嬉しいです :) – mattytommo

関連する問題