我在 VB MV4 项目中使用 EntityFrameWork 5。
我有一个从 EntityFramework 图构建的数据库(模型优先,而不是代码优先)
我有一个 ViewModel X,其中包含一个 List(ofT) T 是我的实体上的一个
当我(在浏览器上)打开我的 Web 应用程序时,我要求控制器将 ViewModel X 作为 Json 对象提供给我,我使用该对象来使用 Knockout JS Mapping 插件填充 MVVC(敲除模型)。
当我询问模型时,我使用类似于如下所示的代码填充它
Public Class DataServiceController
Inherits System.Web.Mvc.Controller
<Authorize()> _
Public Function RetrieveData() As JsonResult
Dim model As ViewModelX
model = New ViewModelX
'=====================================
' Resources and Tools
'=====================================
Dim fetchedResourceAndToolsQuery = From a In db.ResourceAndTools
Where a.ProfileId = profile.ProfileId Select a
For Each eachRes In fetchedResourceAndToolsQuery
Dim res As ResourceAndTools = New ResourceAndTools
res.Name = Trim(eachRes.Name)
res.URL = Trim(eachRes.URL)
res.Target = eachRes.Target
res.ResourceId = eachRes.ResourceId
model.ResourceAndTools.Add(res)
Next
Return Json(model, JsonRequestBehavior.AllowGet)
一切都很好!除了......这是问题
如上所述,ViewModelX 包含一个 List(of T) T 是ResourceAndTools
是否可以将 fetchedResourceAndToolsQuery(Linq 查询的结果)的内容复制(克隆、加载、不确定术语)到 model.ResourceAndTools(List(of T)),而无需实例化新对象并复制像 I 这样的属性正在做。
我已经搜索过(克隆、深度复制、浅复制等)我最接近解决方案的是一些关于如何深度复制对象的解释,但它依赖于序列化,它不起作用,因为不是实体的所有属性框架对象是可序列化的。
任何帮助表示感谢谢谢