2
我使用ADO.NET實體框架與幾個數據訪問層方法返回相同的域實體。讓它成爲:EF:我可以爲lambda類轉換實例嗎?
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.:
class PersonEntity {
public int Id { get; set; }
public string Name { get; set; }
}
和方法,根據不同的標準返回Person實體代碼塊x => new PersonEntity { Id = x.Id, Name = x.Name }
非常重複性(這是非常惱人的許多場實體),但我不能把它的單點,例如靜態方法:
PersonEntity ConvertToPersonEntity(Person x) {
return new PersonEntity { Id = x.Id, Name = x.Name }
}
這樣的外部函數調用不能轉換成SQL運營商。有沒有什麼解決方法可以將轉換保留在一個地方?
預先感謝您!
使用非實體類型可能會編譯失敗。然而,你可以創建一個返回匿名對象初始化表達式的方法,但是如果從編譯器的角度來看,這是完全可能的。 – leppie 2010-09-28 11:25:37