0
私は3つのテーブルを持つデータベースを持っています。 また、私は2つのエンティティ(テーブル)のいくつかのプロパティを示すDataGridを持っています。 両方のテーブルから情報を選択するには、正常に動作するストアドプロシージャを使用します。 このデータグリッド内の行を選択したいのですが、ボタンを押すとデータベース内の3番目のテーブルに追加されます。もう1つのボタンは、エンティティのすべての情報(すべてのプロパティ)を表示するためのボタンです。 私はChosenBooksAuthorsの後にXと何をするべきかわかりません - それはXのBookIDでなければなりませんが、私はそれに到達できません、どうすればいいですか?選択した行をテーブルに追加するには? XAML:DataGridからデータベースに選択した行を追加するには?
<Canvas>
<DataGrid CanUserAddRows="False" x:Name="Info" SelectedItem="{Binding Path=ChosenBooksAuthors}" ItemsSource="{Binding Path=Bookslist}" Background="Honeydew" Canvas.Top="190" Canvas.Left="38" Width="297" Height="105" ></DataGrid>
</Canvas>
のC#:
private List<Book> _VMBooksAuthors = new List<Book>();
public List<Book> ChosenBooksAuthors
{
get
{
return _VMBooksAuthors;
}
set
{
_VMBooksAuthors = value;
OnPropertyChanged("ChosenBooksAuthors");
}
}
private void BasketButton_Click(object sender, RoutedEventArgs e)
{
Basket b = db1.BasketSet.Where(c => c.BookID == ChosenBooksAuthors.X).FirstOrDefault();
db1.BasketSet.Add(b);
db1.SaveChanges();
}
私は、チェックポイントでそれを確認した場合、私はdb1.BasketSet.Add(b)の中にいることを確認。 b = null しかし、前の行ではプロパティーが必要でした –
これですべてが問題なく、すべてのデータが表示されますが、これを書き込むとdb1.SaveChanges(); throws System.Data.Entity.Validation.DbEntityValidationException –
メッセージの内部例外をチェックします。存在しているか、必須フィールドがないキーを追加しようとしている可能性があります。 –