我用ADO.NET实体框架,包含返回同一域实体的多个数据访问层方法。顺其自然:
class PersonEntity {
public int Id { get; set; }
public string Name { get; set; }
}
PersonEntity GetById(int id) {
return db.Person.FirstOrDefault(x => new PersonEntity { Id = x.Id, Name = x.Name });
}
IQueryable<PersonEntity> GetByName(string name) {
return db.Person.Where(x => x.Name == name).Select(x => new PersonEntity { Id = x.Id, Name = x.Name });
}
e、 t.c.代码块
x => new PersonEntity { Id = x.Id, Name = x.Name }
是非常重复的(这对于许多领域实体来说是非常烦人的),但是我不能把它放在一个单一的点上,比如静态方法:
PersonEntity ConvertToPersonEntity(Person x) {
return new PersonEntity { Id = x.Id, Name = x.Name }
}
这样的外部函数调用无法转换为SQL运算符。这里有什么办法可以让转换保持在一个地方吗?
提前谢谢!