EF - 通过导航属性将数据保存到DB

时间:2014-10-07 10:30:57

标签: c# wpf entity-framework

我有点困惑,希望你能帮忙。 我尝试将我的数据保存到我的数据库中,该数据库有多个表格,我想通过我的数据库来访问它们 导航属性。但是当我尝试保存数据时,我得到空引用异常(它说我的对象引用没有为任何对象设置 - 我希望我写得很好,我的VS把它当作匈牙利人)。 我尝试了两种不同的方式。

...

的.cs:

        Mentett mentett = new Mentett(); //reaching Mentett table through mentett
        KiesoIdo kiesoido= new KiesoIdo();

当我这样做时,我得到一个空引用异常,它说我的对象引用没有为任何对象设置。当我第一次尝试时,它说同样的,有时插入语句与我在内部异常中甚至没有使用的外键冲突。我无法理解有什么不对,请帮帮我:(

1 个答案:

答案 0 :(得分:0)

我不认为这是实体框架错误。 否则你会得到一个ValidationError。 更有可能的是,您的某个属性对象未初始化 你得到一个NullReferenceException "对象引用未设置为对象的实例。"

E.g。是KiesoIdo初始化? 尝试放在

行下
Mentett mentett = new Mentett(); 

以下一行:

mentett.KiesoIdo = new KiesoIdo();

要分析验证错误,请在SaveAllChanges()附近添加try-catch语句

try
{ ... }
catch (DbEntityValidationException exception)
{
  foreach (DbEntityValidationResult validationErrors in exception.EntityValidationErrors)
  {
    foreach (DbValidationError validationError in validationErrors.ValidationErrors)
    {
      string log = string.Format("{0} - {1}",
      validationError.PropertyName, validationError.ErrorMessage);
    }
  }
}