私はモデルファーストアプローチを使用してデータベースを作成しました。 AuthorBookID, AuthorID, BookID.
すべてのこれらのテーブルはいくつかのデータを持っている特性を持つ多対多の接続をorginiseするために、プロパティAuthorID, Name, Surname.
AuthorBook
テーブルとプロパティBookID, Title.
Authors
と Books
: は、私は3つのテーブルを持っています。 私は本のタイトル、またはこの本の著者名または姓を入力するテキストボックスを持っており、選択された(ストアドプロシージャによって)アイテムはDataGridに表示されます。 私はSQL Management StudioとVisual Studioのスクリプトでこの機能を実行するストアドプロシージャを作成しました。しかし、コードで正しく動作させる方法と、正しく使用する方法がわかりません。テキストボックスからデータを選択する方法
XAML:
<Canvas>
<TextBox x:Name="SearchBox" Width="193" Height="32" Canvas.Left="38" Canvas.Top="38"></TextBox>
<Button Name="SearchButton" Click="SearchButton_OnClick" Content="Search" Canvas.Left="204" Canvas.Top="80" Height="30" Width="64"></Button>
<DataGrid x:Name="Info" ItemsSource="{Binding Path=Authorslist1}" Background="Honeydew" Canvas.Top="200" Canvas.Left="30" Width="259" Height="50" ></DataGrid>
</Canvas>
C#:
public partial class UserPage : Window
{
Model1Container db1 = new Model1Container();
private MainWindow mv = new MainWindow();
public UserPage(Model1Container d, MainWindow m)
{
InitializeComponent();
DataContext = this;
db1 = d;
mv = m;
}
private void SearchButton_OnClick(object sender, RoutedEventArgs e)
{
}
スクリプト:
CREATE PROCEDURE [dbo].AuthorProcedure1 @name nvarchar(50) AS SELECT BookSet.Title, AuthorSet.Name, AuthorSet.Surname FROM [dbo].AuthorBookSet JOIN BookSet ON BookSet.BookID=AuthorBookSet.BookID JOIN AuthorSet ON AuthorSet.AuthorID=AuthorBookSet.AuthorID WHERE [email protected] GO
あなたのモデルが正しくかなりあるナビゲーションプロパティを使用して構成されている場合単純なLINQクエリ(ストアドプロシージャの必要はありません)しかし、する必要があります:http://stackoverflow.com/questions/20901419/how-to-call-stored-procedure-inentity-framework-6-code-first –
@ SteveGreene私はapprを発見していない残念ながらそこに自分自身のための解決策を選びなさい。はい、私はストアドプロシージャを使用している –
何を試しましたか?ストアドプロシージャが返すフィールドのモデルを作成しましたか? var result = context.Database.SqlQuery( "AuthorProcedure1"、bookTitle).ToList();呼び出しを作成しましたか? ? –