使用LinqtoSql返回域映射列表

时间:2009-04-15 19:02:18

标签: linq-to-sql domain-driven-design

我该怎么做,即保持映射分开?

而不是:

var people= (from p in db.people select new Person{ 
                                              id=p.id,
                                              name=p.name
                                               }).ToList();

我想这样做:

 var people= (from p is db.people select new Person {
                                        ***MAPTODOMAIN(p)*** 
                                         }).ToList();

1 个答案:

答案 0 :(得分:1)

假设模型中的Person是一个不属于Linq2SQL数据上下文的域类,并将类AppUser替换为数据上下文中的类(为清楚起见,因为名称在您的示例中非常相似),这样会起作用:

 var people = (from p in db.AppUsers select MapPerson(p)).ToList();

在代码中的其他地方使用与此类似的方法:

 private Person MapPerson(AppUser user)
 {
     return new Person {Id = user.Id, Name = user.Name};
 }