所以我有一个城市模型。每个城市都有一个Name属性以及其他城市,StateId和State(StateId是外键)。 State还有一个Name属性。我想创建一个名为“Name_Full”的属性,名称为“+”,“+ State.Name”,如“Ashland,OR”。但是,每当我想引用属性时,我都会收到错误“对象引用未设置为对象的实例”。
以下是城市模型的代码:
public class City
{
public int CityId { get; set; }
[Required]
public string Name { get; set; }
public int StateId { get; set; }
public State State { get; set; }
public List<Store> Stores { get; set; }
public string Name_Full
{
get
{
return Name + ", " + State.Name;
}
}
}
(我没有包含命名空间和使用东西)。
答案 0 :(得分:1)
据推测,某些 State 表在数据库中为空;因此,当您尝试提取null对象的 Name 属性时,将抛出异常。使用以下内容处理null case:
return Name + ((State == null) ? "" : ", " + State.Name);
答案 1 :(得分:1)
确保在调用Name_Full时,必须加载State对象而不是null。如果您担心外键关系不存在,则可以显式链接外键:
// Foreign key to state
[ForeignKey("State")]
public int StateId { get; set; }
public virtual State State { get; set; }