【问题标题】:ASP.NET MVC Model with a foreign key property具有外键属性的 ASP.NET MVC 模型
【发布时间】:2012-06-22 16:17:53
【问题描述】:

所以我有一个城市模型。每个城市都有一个 Name 属性以及其他属性以及 StateId 和 State(StateId 是外键)。 State 也有一个 Name 属性。我想创建一个名为“Name_Full”的属性,它是 Name + ", " + 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;
        }
    }
}

(我没有包含命名空间和使用的东西)。

【问题讨论】:

    标签: c# .net asp.net-mvc


    【解决方案1】:

    您的数据库中可能有一些 State 表为空;因此,当您尝试提取空对象的 Name 属性时,会引发异常。使用类似这样的方式处理空大小写:

    return Name + ((State == null) ? "" : ", " + State.Name);
    

    【讨论】:

      【解决方案2】:

      确保在调用 Name_Full 时,必须加载 State 对象且不为空。如果您担心外键关系不存在,可以显式链接外键:

      // Foreign key to state
      [ForeignKey("State")] 
      public int StateId { get; set; } 
      public virtual State State { get; set; } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2020-11-15
        • 2019-04-25
        • 2021-02-20
        • 2017-08-22
        • 1970-01-01
        相关资源
        最近更新 更多