我在我的C#应用程序中使用实体框架。
我接近完全实现它,但是对于流畅的API有点困惑。
class Customer : IEntity {
public Id { get; set; }
public Name Name { get; set; };
public Customer() {}
public Customer( Name name ){
this.name = name;
}
}
class Name {
public String Title;
public String Forename;
public String Surname;
public Name(){}
public Name( String Title, String Forename, String Surname ){
// assign values
}
}
使用实体框架保存似乎工作正常;至少没有任何例外。
但是,当我尝试让所有客户使用DbContext.getAll()
时,它会在尝试将customer.Name.Forename
打印到输出窗口时抛出NullReferenceException。我可以看到customer.Name
为空 - 这显然是造成该异常的原因。
为什么Name(以及所有其他类似属性)为null?我该如何解决这个问题?
注意: 我在Customer模型中有一个日期,这是在我将以下内容添加到我的DbContext实现后正确填充...
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Properties<DateTime>().Configure(c => c.HasColumnType("datetime2"));
}
我想我需要在这里添加一些东西才能正确映射名称。我只是不确定如何去做。
提前致谢。
答案 0 :(得分:0)
我在[ComplexType]
课程上方添加了Name
,现在正在使用。
为清楚起见:
[ComplexType]
class Name {
...
}