Asp.net mvc 从数据库模型填充ViewModel
我有一个继承数据库模型的ViewModel。我无法确定如何从数据库填充ViewModel “视图模型” “控制器” 我得到一个无效的强制转换异常Asp.net mvc 从数据库模型填充ViewModel,asp.net-mvc,vb.net,Asp.net Mvc,Vb.net,我有一个继承数据库模型的ViewModel。我无法确定如何从数据库填充ViewModel “视图模型” “控制器” 我得到一个无效的强制转换异常 任何帮助都将不胜感激。您的Linq查询将返回(我假设)作为客户对象的列表,您需要将其投影到视图模型对象中。通过添加选择更改Linq: model = (From c In db.Customers _ Where c.Id = Id AndAlso _ c.OrganisationId = s.Organisatio
任何帮助都将不胜感激。您的Linq查询将返回(我假设)作为
客户
对象的列表,您需要将其投影到视图模型对象中。通过添加选择更改Linq:
model = (From c In db.Customers _
Where c.Id = Id AndAlso _
c.OrganisationId = s.OrganisationId _
Select New CustomerView With { _
.CompanyName = c.CompanyName, _
.Address = c.Address, _
.City = cust.City, _
.Country = cust.Country}).FirstOrDefault
我已经有一段时间没有使用VB了,但这应该可以工作,或者只需要调整一下。谢谢David。这和我的结局几乎一样。然而,我决定放弃继承权,为客户购买一处房产。这样,如果客户型号发生变化,我就不必更新控制器。我可以简单地将这个属性设置为我的linq查询。啊,很有趣。我个人会创建一个完全不同的视图模型类,并使用Automapper传递相关属性。除非受到控制,否则传递实体对象可能会变得危险。
Function Edit(Optional Id As Integer = Nothing) As ActionResult
Dim model As New CustomerView
model = (From c In db.Customers Where c.Id = Id AndAlso c.OrganisationId = s.OrganisationId).FirstOrDefault
If model Is Nothing Then
Return RedirectToAction("List")
Else
Return View(model)
End If
End Function
model = (From c In db.Customers _
Where c.Id = Id AndAlso _
c.OrganisationId = s.OrganisationId _
Select New CustomerView With { _
.CompanyName = c.CompanyName, _
.Address = c.Address, _
.City = cust.City, _
.Country = cust.Country}).FirstOrDefault