ASP.NET MVC 链接到另一个相同类型的对象

本文关键字:同类型 对象 另一个 NET MVC 链接 ASP | 更新日期: 2024-11-03 21:01:34

我有一组问题。每个问题都有一个指向另一个问题的链接(下一个问题)。如何在模型中正确实现这一点?我认为变体

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace TestAlibra.Models
{
    public class Question
    {
        public int ID { get; set; }
        [Required]
        public string Title { get; set; }
        public int NextQuestion { get; set; }
    }
}

将是错误的,因为这不符合 EF 标准。也像

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace TestAlibra.Models
{
    public class Question
    {
        public int ID { get; set; }
        [Required]
        public string Title { get; set; }
        public int QuestionID { get; set; }
        public virtual Question Question { get; set; }
    }
}

看起来很奇怪;我认为这也是错误的。

感谢您的帮助!

ASP.NET MVC 链接到另一个相同类型的对象

你应该使用:

public class Question
{
    public int ID { get; set; }
    [Required]
    public string Title { get; set; }
    public int? QuestionID { get; set; }
    public virtual Question Question { get; set; }
}

通过命名约定,QuestionID将转换为外键。

请注意,我将其更改为 int? ,这是因为您需要外键可为空,否则将无法插入到需要链接到自身的表中(您将如何插入第一个元素?

如果您选择从数据库生成类,则正是数据库优先将为您自动生成的类。