2016-11-16 8 views
0

Cantはこれについてオンラインで何かを見つけるようです...フォームまたはプロファイルが正しい単語ではないかもしれません。 基本的に私はモデルとしてビジュアルスタジオ2015に自分のSQL DBを接続し、データは外部スキーマ構造と外部キーと主キーで設定されます。 私は以下のようなフォームを作成したいと思います。Visual Studio 2015でasp.net mvcでフォーム/プロファイルを作成するとSQLデータベースに接続する

様々な異なるテーブルから来たフォーム内のフィールド、これは私がこれらを一覧表示するために使用する必要があるqould SQLコードです:

SELECT C.Title 
,C.Forename 
,C.Surname 
,C.Postnominal 
,C.Degree 
,C.Picture 
,C.Video 
,B.Department 
,B.JobTitle 
,C.BiographyShort 
,C.BiographyLong 
,C.HowCanHelp 
,D.ResearchArea 
,E.ResearchProject 
,S.ResearchPersonalID 
,U.URL 
,U.LABEL 
    FROM [StaffProfilesTest].[dbo].[FactStaffProfiles] A 
    INNER JOIN [dbo].[DepartmentJob] B ON A.DepJobID=B.DepJobID 
    INNER JOIN [dbo].[PersonalDetails] C ON A.PersonalID=C.PersonalID 
    INNER JOIN [dbo].[ResearchArea] D ON D.RAreaID=A.RAreaID 
    INNER JOIN [dbo].[ResearchProject] E ON E.RProjID=A.RProjID 
    INNER JOIN [dbo].[StudentSupervisor] S ON A.SSID=S.SSID 
    INNER JOIN [dbo].[CustomURL] U ON U.UrlID=A.URLID 
-- where [email protected] 
    GROUP BY C.Title 
,C.Forename 
,C.Surname 
,C.Postnominal 
,C.Degree 
,C.Picture 
,C.Video 
,B.Department 
,B.JobTitle 
,C.BiographyShort 
,C.BiographyLong 
,C.HowCanHelp 
,D.ResearchArea 
,E.ResearchProject 
,S.ResearchPersonalID 
,U.URL 
,U.LABEL 

これは、Visual Studioで2015年 enter image description here 私の実体図であります私はmvc asp.net Webアプリケーションを作成しました。 これをモデルとして追加しました。 以下のフォームを作成したい場合は、これらのフィールドをすべて表示するアクションとして、コントローラでこれをスクリプト化する方法は、データベース開発者なので、これは新しく、SQLコマンドに慣れています....

私は既に2つのビューを作成しましたが、それらは1つのテーブルだけを見ています。私の問題はテーブルの結合を見ています。

私はssmsでビューを作成することでこれを行うことを考えています。私は必要なすべてのフィールドを取得することができますSQLステートメント内のジョインを介してこれを行う、ビジュアルスタジオのモデルでそれをもたらすと、このため。これは正解でしょうか?あなたは、エンティティフレームワークを使用する場合、それはあなたのために自動的にビューとコントローラを生成することができます....

enter image description here

+3

あなたの質問は非常に幅広いです。 MVCチュートリアルで、データからビューを作成する方法を学習しましたか? [ASP.NET MVC 5の入門](https://www.asp.net/mvc/overview/getting-started/introduction/getting-started) –

+1

単純なケースでは、EditorForの代わりにDisplayForヘルパーを使用できますフィールドを表示専用にするためです。さまざまな状況でどのフィールドが読み取り専用であるかに関する規則がある場合、それは少し複雑になります。たぶんあなたが達成したいことを正確に特定の質問のいくつかの詳細をいくつか質問してください。 – ADyson

+0

これをより具体的にするために編集された質問 –

答えて

1

は、任意のビデオを持っているか、誰もがこれを支援することができます。

まだ使用していない場合は、チュートリアルを参照して手動でギャップを書き留めることができますので、これを行う方法がわかります。それは本当に簡単ですが、一般的にあなたのためにそれを書くように求めています。

基本的な考え方は、必要なオブジェクトをすべて含む単一のビューモデルを作成するために、コントローラを介してビューに渡すことです。ビューには、viewmodelからのすべての検証ルールがあり、適切なhtmlヘルパーを使用してフォームを作成すると、jQueryによってブラウザ側の検証が設定されます。 フォームを送信するときに、同じviewmodelを期待し、有効な状態を確認し、有効であればdbソリューションで保存してください。

asp.net website you can find full tutorialsこれを行う方法は、より多くの説明プロジェクトcalled MVC music storeもあります。

また、CRUDビジネスレイヤーの作成を検討して、最小のオブジェクトを処理するようにしてください。このようにして、すべての複雑さを抽象化することができます。また、ビューモデルを作成して作業を完了できます。詳細はドメイン駆動型デザインを検索してください。それは複雑に見えますが、多くを助けます。

+0

ありがとうございます、上記の質問を編集して、私が何を感じているのかをより詳しく説明します。私は1つのビューにテーブルに参加することでnの問題を抱えています....これが役立つことを願って –

+0

うわーは巨大です。オブジェクトをC#モデルで分離して、それぞれをCRUD形式で記述してください。次に、C#でViewModelを作成することができます。基本的には、ビュー上の必要なすべてのオブジェクトにオブジェクトするコンテナです。あなたが1つの大きなクエリよりも多くの要求をdbに要求しなければならないので、それは正直遅くなりますが、より管理しやすいので、実際に作業することができます。 –

+0

エラーが発生しやすい管理不能なコードがあるため、SQLのみで複雑な問題を解決することに注意してください。 –

関連する問題