【问题标题】:Should ViewModels contain Property Values against Property IDs in the Entity (Model Class)?ViewModel 是否应该包含针对实体(模型类)中的属性 ID 的属性值?
【发布时间】:2017-04-02 07:02:43
【问题描述】:

所以我的面试实体/模型中有 CityID(属性)。

我可以(应该)在我的 ViewModel (InterviewViewModel.cs) 中有 CityName 吗?

如果是,我将如何使用 AutoMapper 映射它们,因为它(城市)是一个单独的实体?

            Mapper.Initialize(cfg =>
        {
        cfg.CreateMap<Interview, InterviewViewModel>()
        .ForMember
            (dst => dst.CityName, src => src.MapFrom (e => e. // how would I do this?? ))

        });

【问题讨论】:

  • 在 Interview 中创建一个 city 属性并执行 e=> e.City.CityName,你使用 ORM 是这样想的。
  • 你是说导航属性吧?我想到了这一点,但后来我也需要其他实体中的城市。然后我必须在所有这些实体中拥有 ICollectionCities,对吗?另外,我还需要一个 CityID 在我的采访中存储与采访相关的城市......?
  • 是的,完全正确。这就是要走的路,应该怎么做。如果您不想这样做,则需要通过查询 City 表手动映射城市名称。那将是两个数据库调用,效率不高。
  • 好的,谢谢。请写下您的评论作为答案,以便我将其标记为答案。

标签: c# automapper viewmodel


【解决方案1】:

请在Interview 中创建一个City 导航属性并在automapper 配置文件中执行e=&gt; e.City.CityName

这将使事情变得更容易,您将能够充分利用 Entity Framework 或您正在使用的其他 ORM 的全部潜力。否则,您将需要手动查询City 表,然后将名称添加到您的Interview ViewModel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多