使用ViewModel数据库优先方法在数据库中保存表

本文关键字:数据库 保存 ViewModel 使用 方法 | 更新日期: 2023-09-27 18:06:11

我有一个MVC应用程序来更新数据库中的一个表,但是现在我需要添加一个ViewModel,这样我就可以在一个视图页面上显示多个表。但现在的问题是,它现在不会保存到数据库中。我使用数据库优先的方法(不是代码优先)。

到目前为止我写的是:

In my ViewModel:

Public Class ClientUserProjectIssue
    Public Property uTable As UserTable
    Public Property issueType As IssueTypeTable
    Public Property IssueTable As IssueTable
End Class

在视图中:

@ModelType IssueTracker.ClientUserProjectIssue
@Html.EditorFor(Function(model) model.IssueTable.IssueSummary)
@Html.EditorFor(Function(model) model.IssueTable.IssueDescription)

In my controller:

Public Function UpdateIssue(issue As IssueTracker.ClientUserProjectIssue, objModelMail As IssueTable, command As String) As ActionResult
dbServer.Entry(issue).State = EntityState.Modified
dbServer.SaveChanges()

我现在将得到一个空值,因为我正在使用ViewModel而不是单个表。

我试图实现这样的东西:

Using context As New DbContext()
    Dim dataModel As DatabaseEntities= context.IssueEntiteis.where(Function(x) x.Id = viewModel.Id).First()
    dataModel.Name = viewModel.Name
    dataModel.Type = viewModel.Type
    context.SaveChanges()
End Using

但我得到错误,所以我很确定我不能这样做,因为我使用数据库第一,我怎么能实现一个viewModel,这样我就可以在数据库中保存表?

使用ViewModel数据库优先方法在数据库中保存表

将ViewModel传递给DbContext。输入方法。

不传递ViewModel,你应该传递ViewModel的属性。

dbServer.Entry(issue.uTable).State = EntityState.Modified;