gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:26:51 25 4
gpt4 key购买 nike

我正在处理一个使用 MVC 和 EF Core 的家庭作业项目。我正在寻找将数据写入数据库的最佳方法。 (我是初学者)有两张 table 。 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)。注册连接到名为 Seminars 的表(名称:Seminari)。

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

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

所以我已经有了这两个模型的 Controller ,以及用于创建、编辑等的适当 View 。

我的问题是:我是否创建一个单独的 Controller /模型/ View 来将数据插入表中?谁能给我举个例子说明它是如何完成的?

为了进一步澄清,我需要制作用户侧页面,用户可以在其中通过输入姓名、姓氏等并选择所需的研讨会来“注册”“研讨会”。现在我有功能性数据库、Identity(稍后将在项目中使用)、两个模型的 Controller 以及我可以在其中编辑 Prebilježbe(eng. Enrollments) 和 Seminars 的适当 View 。

页面图片如下: Image1 Image2 Image3 Image4

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

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

最佳答案

如果我对您的问题的理解正确,那么您是在询问良好的架构设计。你不是吗? (如果不是,请让我知道编辑答案)。

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

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

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

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

附言通过注入(inject)我的意思是使用任何 IoC 设计模式(在 ASP.Net Core 中,依赖注入(inject)已经内置)。

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

关于c# - 通过 MVC 将数据写入数据库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com