通过 MVC 将数据写入数据库的最佳方法是什么?

2024-05-25

我正在使用 MVC 和 EF Core 开发一个家庭作业项目。 我正在寻找将数据写入数据库的最佳方法。 (我是初学者) 有两张桌子。Predbilježba(报名)和Seminari(研讨会)

public class Predbilježba
{
    [Key]
    public int PredbilježbeID { get; set; }
    public string Ime { get; set; }
    public string Prezime { get; set; }
    public string Adresa { get; set; }
    public string Email { get; set; }
    public string Telefon { get; set; }
    public bool Status { get; set; }

    [DataType(DataType.Date)]
    public DateTime DatumUpisa { get; set; }  
    public int SeminarID { get; set; }
    public Seminar Seminar { get; set; }
}

public class Seminar
{
    public int SeminarID { get; set; }
    public string Naziv { get; set; }
    public string Opis { get; set; }

    [DataType(DataType.Date)]
    public DateTime Datum { get; set; }
    public bool Popunjen { get; set; }
    public ICollection<Predbilježba> Predbilježba { get; set; }
}

我需要插入一种注册(名称为:Predbilježba) 到数据库中。 Enrollment 连接到一个名为 Seminars 的表(名称为:Seminari).

因此,当一个人“注册”参加“研讨会”时,他/她需要在表格中插入基本数据(姓名、电话号码等),并且他们需要从给定研讨会的列表中选择一个“研讨会”,这些研讨会是在“研讨会”表中。

因此,当他们单击“保存”时,他们的基本数据将被写入Predbilježba/(eng. Enrollment)”以及所选的“研讨会”

所以我已经有了这两个模型的控制器,以及用于创建、编辑等的适当视图。

我的问题是:我是否创建一个单独的控制器/模型/视图来将数据插入表中?有人能给我一些如何完成的例子吗?

为了进一步澄清,我需要制作用户侧页面,用户可以通过写下姓名、姓氏等“注册”到“研讨会”并选择所需的研讨会。现在我有功能数据库、身份(稍后将在项目中使用)、两个模型的控制器以及可以编辑的适当视图Prebilježbe(eng. 注册)和研讨会。

Images of page follow: Image1 Image2 Image3 Image4

因此,当用户单击 Upiši se(eng. enroll)(如图 3 所示)时,所选研讨会以及单击后打开的基本信息(图 4)需要写入数据库“Predbilježbe”(eng Enrollments)

这个“Upis”页面将是用户输入页面,“Seminari”和“Predbilježbe”将是管理页面。


如果我正确理解你的问题,那么你问的是好的建筑设计。你不是吗? (如果没有,请让我知道编辑答案)。

您有许多架构选择和可能性。最容易上手的模式是服务存储库架构模式。我会在这里省略“存储库”一词,因为 EF(在我看来)已经是一个存储库模式实现(至少部分地)。

所以为了简单起见,你想从服务架构模式。这是关于创建一个类,该类注入DbContext在它的构造中(让我们将其命名为PredbilježbaService)。在此类中,您可以处理逻辑的所有操作(包括数据库 EF 查询)。

然后,将此类注入到控制器中,并从控制器中的该服务类(处理数据库)调用所需的函数。

相同的过程可以应用于其他实体Seminar.

附:我所说的注入是指使用任何 IoC 设计模式(在 ASP.Net Core 中,依赖注入已经是内置的)。

所以在这些简短的话语之后,回答你的问题直接地,yes,一个好的软件设计应该是创建一个单独的类来处理数据库操作(添加行、编辑行等)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 MVC 将数据写入数据库的最佳方法是什么? 的相关文章

随机推荐