我有一些關於如何與一個實體一起工作的問題說EF實體和代理類型,這將綁定到用戶界面。實體和它的代理類型之間的轉換
假設我有以下類
// Db Entity
public class Car
{
public virtual int Id { get; set; }
public string ChassisNumber { get; set; }
public virtual string Brand { get; set; }
public virtual string Name { get; set; }
}
// Surrogate type that reflects some properties of Car entity
// This class will be bound to UI
public class SurrogateCar
{
public string Brand { get; set; }
public string Name { get; set; }
}
現在,我會越來越從數據庫List<Car>
,並希望創建一個List<SurrogateCar>
代表我的實體。我可以用很多方式輕鬆地做到這一點,其中一個是這樣的:
List<Car> cars = CarTable.GetMyCars(); // Just a dummy method, suppose it returns all entities from Db.
List<SurrogateCar> surrogates = new List<SurrogateCar>();
foreach (var car in cars)
{
surrogates.Add(new SurrogateCar { Brand = car.Brand, Name = car.Name });
}
或者我可以寫一個自定義的投射方法。但我擔心的是表演。這個方法會被頻繁調用,所以創建一個列表並且逐個填充它對我來說似乎是一個潛在的問題。
你有沒有更好的方法來做到這一點,或者是否可以像這樣使用它?
謝謝。
無論方法,你拿名單必須被迭代,然後代孕已經被實例化......那是必然的 – Chandu 2012-07-11 13:17:53
@Chandu,其實這就是爲什麼我要求瞭解是否有辦法避免它。謝謝。 – 2012-07-11 13:22:22