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>)