我正在使用VisualStudio 2015和SqlServerExpress2015。
我在SQLExpress中有3个表:
我开始在VisualStudio 2015中创建一个新的WPF Projetct 我添加了一个新项目 - Ado.NET实体数据模型 我从数据库中选择EF Designer
我有这个模型。
我从Object获取数据源 并将ProductBase添加为Grid。 我还将Validation_Duration_Days和Validation_Amount添加为Edit Field。
然后我点了下面的代码。
public partial class MainWindow : Window
{
CarWashFlatEntities2 context = new CarWashFlatEntities2();
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Data.CollectionViewSource productBaseViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productBaseViewSource")));
// Laden Sie Daten durch Festlegen der CollectionViewSource.Source-Eigenschaft:
context.ProductBase.Load();
productBaseViewSource.Source = context.ProductBase.Local;
}
private void button_Click(object sender, RoutedEventArgs e)
{
context.SaveChanges();
productBaseDataGrid.Items.Refresh();
}
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
base.OnClosing(e);
this.context.Dispose();
}
}
}
结果是,我可以添加BaseProducts。 我还可以更改数据库中存在IF数据的持续时间或有效数量值。
我的问题: 当我在列表中添加一行(productbase)并在Vality_Amount文本框中输入一些值时。这不起作用。 我怎样才能做到这一点 ? 向ProductBase添加新行,并使用相同的ProductBaseID向ProductPrePaid添加新行。
以下是我的模特: ProductBase.cs
public partial class ProductBase
{
public int ProductBaseID { get; set; }
public string Name { get; set; }
public virtual ProductFlatRate ProductFlatRate { get; set; }
public virtual ProductPrePaid ProductPrePaid { get; set; }
}
ProductFlatRate.cs
public partial class ProductFlatRate
{
public int ProductBaseID { get; set; }
public int Validity_Duration_Days { get; set; }
public virtual ProductBase ProductBase { get; set; }
}
ProductPrePaid.cs
public partial class ProductPrePaid
{
public int ProductBaseID { get; set; }
public int Validity_Amount { get; set; }
public virtual ProductBase ProductBase { get; set; }
}