这应该很简单:如果我有一个实体框架主从关系,我如何在代码中添加一个详细记录?假设我有一个名为 Book 的父表/实体和一个名为 Chapter 的子表/查找表/实体,其中包含一个 ChapterTitle 字段/属性。我希望用户能够在文本框中键入章节标题,然后单击“添加章节标题”按钮。然后,新的 ChapterTitle 将出现在通过 CollectionViewSource 绑定到 Chapters 表/实体的 ListView 中。
我没有使用 MVVM(我也没有寻求涉及 MVVM 的答案)。我正在使用此 Julie Lerman 帖子中所述的数据源窗口中的拖放操作。我的情况的不同之处在于,我没有通过数据网格显示和添加详细信息,而是使用 ListView 和文本框让用户添加新的章节标题。
拖放在 XAML 中创建了两个 CollectionViewSource 条目:
<Window.Resources>
<CollectionViewSource x:Key="booksViewSource" d:DesignSource="{d:DesignInstance my:Book, CreateList=True}" />
<CollectionViewSource x:Key="bookChaptersViewSource" Source="{Binding Path=ChaptersNav, Source={StaticResource booksViewSource}}" />
</Window.Resources>
自动生成的代码如下所示:
private System.Data.Objects.ObjectQuery<Book> GetBooksQuery(BookEntities bookEntities)
{
// Auto generated code
System.Data.Objects.ObjectQuery<BookNamespace.Book> booksQuery = bookEntities.Books;
// Update the query to include Chapters data in Books. You can modify this code as needed.
booksQuery = booksQuery.Include("Chapters");
// Returns an ObjectQuery.
return booksQuery;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
BookEntities bookEntities = BookEntities();
// Load data into Books. You can modify this code as needed.
System.Windows.Data.CollectionViewSource booksViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("booksViewSource")));
System.Data.Objects.ObjectQuery<BookNamespace.Book> booksQuery = this.GetBooksQuery(bookEntities);
booksViewSource.Source = booksQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
}
我需要在 button_click 事件中添加什么代码才能从文本框中获取用户的章节标题并通过详细信息的 CollectionViewSource (bookChaptersViewSource) 将其添加为新的详细信息记录?我希望这很简单,但是我花了太多时间尝试却没有任何运气。提前致谢!