使用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传递给DbContext。输入方法。
不传递ViewModel,你应该传递ViewModel的属性。
dbServer.Entry(issue.uTable).State = EntityState.Modified;