我使用VisualStudio 2015和SqlServerExpress2015。EF6主细节
我有3个表中的SQLExpress:
我startet在VisualStudio的2015年创建一个新的WPF Projetct 我添加了一个新项目 - Ado.NET实体数据模型 我选择从EF设计数据库
我得到这个模型。
我从交锋对象 一个数据源,并添加了ProductBase作为一个网格。 我还将Validation_Duration_Days和Validation_Aount添加为编辑字段。
然后我国防部的follwoing编码。
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。 我也可以更改数据库中存在数据的持续时间或有效数量值。
我的问题: 当我在列表(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; }
}
对于初学者来说,不使用部分类为您的模型,第2只是创建拥有所有这3类领域的又一Model类。 然后输入其中的所有属性,然后将它们添加到您的上下文中。 – Aizen
在您尝试实现继承时,您没有将模型配置为了解您的层次结构。参见[this](http://stackoverflow.com/questions/22263189/entity-framework-db-first-implement-inheritance/22263190#22263190)回答。 – Ashkan
它为CodeFirst方法正确配置。但它是部分阶级,它应该是一个具体的阶级。 – Aizen