我有一个MVC应用程序来更新数据库中的表,但现在我需要添加一个ViewModel,以便我可以在视图页面上显示多个表。但现在的问题是它现在不会保存到数据库中。我使用数据库第一种方法(不是代码优先)。
这是我到目前为止所做的:
在我的ViewModel中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_black_transparent_90"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="26dp"
android:layout_marginTop="18dp"
android:text="@string/FOLDERS"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/darker_gray" />
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:layout_marginRight="39dp"
android:visibility="gone" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_red_edit" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView1"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/imageView1"
android:text="EDIT"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/darker_gray"
android:textSize="16dp" />
</RelativeLayout>
<GridView
android:id="@+id/gridEditView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/ddd"
android:layout_below="@+id/textView1"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:background="@android:color/transparent"
android:horizontalSpacing="1dp"
android:numColumns="2"
android:verticalSpacing="1dp" >
</GridView>
<RelativeLayout
android:id="@+id/ddd"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<Button
android:id="@+id/button6"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginTop="4dp"
android:background="@drawable/ic_red_cancel_47"
android:gravity="center"
android:visibility="visible" />
<Button
android:id="@+id/btnAddActivity"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:background="@drawable/ic_red_ok_47" />
</RelativeLayout>
</RelativeLayout>
在视图中:
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)
我现在将得到一个空值,因为我使用的是ViewModel而不是单个表。
我试图实现这样的事情:
Public Function UpdateIssue(issue As IssueTracker.ClientUserProjectIssue, objModelMail As IssueTable, command As String) As ActionResult
dbServer.Entry(issue).State = EntityState.Modified
dbServer.SaveChanges()
但我收到错误,所以我很确定我不能这样做,因为我首先使用数据库,如何实现viewModel以便我可以在数据库中保存表?
答案 0 :(得分:1)
您正在将ViewModel传递给DbContext.Entry方法。
而不是传递ViewModel, 你应该传递ViewModel的属性。
200