C# 将automapper create.map()映射到集合属性

C# 将automapper create.map()映射到集合属性,c#,automapper,C#,Automapper,如何映射到属性集合,但只对集合的最后一条记录感兴趣 比如说 public class ItemDTO <-- destination class { public string Name { get; set; } public decimal PricesPrice { get; set; } } public class Item <-- Source class { public int Id { get; set; } public string Name

如何映射到属性集合,但只对集合的最后一条记录感兴趣

比如说

public class ItemDTO <-- destination class
{
  public string Name { get; set; }
  public decimal PricesPrice { get; set; }
}

public class Item <-- Source class
{
  public int Id { get; set; }
  public string Name { get; set; }

  public virtual ICollection<Price> Prices { get; set; }
}

public class Price <-- Source class
{
  public int Id { get; set; }
  public int ItemId { get; set; }
  public decimal Price { get; set; }

  public virtual Item Item { get; set; }
}

上面的代码可以用
AutoMapper
完成吗?

我想我明白你现在想做什么了

试试这个

from item in SomeDbContext.Items
where item.ItemId == 1
select Mapper.Map<ItemDTO>(item)
来自SomeDbContext.Items中的项
其中item.ItemId==1
选择Mapper.Map(项目)
或者你可以用LINQ

SomeDbContext.Items.Where(i=> i.ItemId == 1).Select(Mapper.Map<ItemDTO>)
SomeDbContext.Items.Where(i=>i.ItemId==1)。选择(Mapper.Map)

这两个选项都将返回ItemDTO对象的列表,其中ItemId为1

您的问题不一致
ItemDTO
没有名为
Price
的属性。哦,很抱歉。打字错误编辑它。你能帮我解决我的问题吗?你有什么问题?你是得到了一个错误还是没有得到你期望的值?@Miknorgate不是我期望的正确值。如果你在那种情况下,你最终会怎么做?@BoyPasmo我会和你做同样的事情。您可能应该添加一些内容来处理返回null的LastOrDefault()。你能发布一些示例数据,以及这些数据的价值吗?我绝对会试试这个。但我只是想知道,这可以在-->
Project().To()
中完成吗?我相信您应该能够完成
SomeDbContext.Items.Where(I=>I.ItemId==1.Project().To()
from item in SomeDbContext.Items
where item.ItemId == 1
select Mapper.Map<ItemDTO>(item)
SomeDbContext.Items.Where(i=> i.ItemId == 1).Select(Mapper.Map<ItemDTO>)