【发布时间】:2015-04-02 17:03:03
【问题描述】:
这可以从我们数据库中的 Address 对象中分离出 DDL 对象:
public class DDL {
public int? id { get; set; }
public string name { get; set; }
}
List<DDL> mylist = Addresses
.Select( q => new DDL { id = q.id, name = q.name })
.ToList();
但是,我们希望将 POCO 到 ViewModel 的映射保留在 MVC 控制器代码之外的单个位置。我们想做这样的事情:
List<DDL> mylist = Addresses
.Select( q => new DDL(q)) // <-- constructor maps POCO to VM
.ToList();
但是 SQL 不能使用构造函数。上面的对象初始化器不使用函数来映射字段。当然你可以.AsEnumerable().Select( q => new DDL(q)),但是这会选择 SQL 中的所有字段(包括数据),将其发送到 C#,然后 C# 分割出我们需要的字段(传输我们不需要的数据效率非常低。)
有什么建议吗?我们碰巧正在使用 Entity Framework 6 来提取数据。
【问题讨论】:
标签: c# entity-framework-6