我的数据库中有两张表(产品和库存物品),它们是相关的。此外,我有一个视图模型,代表产品实体,并有一个库存项目列表。为了将一个类解析为另一个类,我使用了AutoMapper.当我试图将我的产品解析为我的产品视图模型时,当我没有库存项目相关时,我收到了一个异常。当我有的时候,没有异常生成。我收到的信息是 "当没有找到相关记录时,没有给定标识符的记录存在"。我读到它可以通过在映射上使用 "NotFoud.Ignore "注解来解决,但是,我做了,它不工作。我也读到这可能是外键的映射问题(映射可能不存在),但我审查了映射和表,它似乎是好的(而且,相关记录存在时也能正常加载)。
将StockItems列表映射到ProductEntity的代码是这样的。
Set
(
x => x.StockItems,
m =>
{
m.Key(k => k.Column("ProductId"));
m.Lazy(CollectionLazy.NoLazy); ;
m.Fetch(CollectionFetchMode.Select);
},
map => map.OneToMany(x =>
{
x.Class(typeof(StockItem));
})
);
在StockItems中,我有以下代码来映射Product实体。
ManyToOne
(
x => x.Product,
m =>
{
m.Column("ProductId");
m.ForeignKey("FK_StockItems_ProductId");
m.Lazy(LazyRelation.NoLazy);
m.Cascade(Cascade.None);
});
好的,当找不到子实体时,你就会遇到问题,你可以尝试以下方法 NotFound.Ignore() 我认为它会工作。