Nhibernate - 当找不到相关记录时,不存在给定标识符的记录。

问题描述 投票:1回答:1

我的数据库中有两张表(产品和库存物品),它们是相关的。此外,我有一个视图模型,代表产品实体,并有一个库存项目列表。为了将一个类解析为另一个类,我使用了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);
});
c# .net nhibernate automapper nhibernate-mapping
1个回答
0
投票

好的,当找不到子实体时,你就会遇到问题,你可以尝试以下方法 NotFound.Ignore() 我认为它会工作。

© www.soinside.com 2019 - 2024. All rights reserved.