我在如何使用实体时遇到一些问题,比如 EF 实体和代理类型,它们将绑定到 UI。
假设我有以下课程
// 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>
将从 db 获取并希望创建一个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 });
}
或者我可以编写一个自定义转换方法。但我担心的是性能。这个方法会被频繁调用,所以创建一个列表并一个一个地填充它对我来说似乎是一个潜在的问题。
你有没有更好的方法来做到这一点,或者像这样使用它可以吗?
谢谢。