Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Nop Commerce-将自定义存储过程映射到实体_C#_Entity Framework_Nopcommerce - Fatal编程技术网

C# Nop Commerce-将自定义存储过程映射到实体

C# Nop Commerce-将自定义存储过程映射到实体,c#,entity-framework,nopcommerce,C#,Entity Framework,Nopcommerce,我使用的是nop commerce 3.4,它首先使用EF代码,我想将执行select的存储过程映射到自定义实体。 我已经在域中创建了要映射到的自定义实体CategoryItemModel。 但是,当NopObjectContext运行调用存储的进程时,我得到错误: 实体类型CategoryItemModel不是当前上下文的模型的一部分。 如何将CategoryItemModel添加到上下文中? 提前谢谢。你写地图了吗?下面是一个产品实体映射的示例 using System.Data.Entit

我使用的是nop commerce 3.4,它首先使用EF代码,我想将执行select的存储过程映射到自定义实体。 我已经在域中创建了要映射到的自定义实体CategoryItemModel。 但是,当NopObjectContext运行调用存储的进程时,我得到错误: 实体类型CategoryItemModel不是当前上下文的模型的一部分。 如何将CategoryItemModel添加到上下文中?
提前谢谢。

你写地图了吗?下面是一个产品实体映射的示例

using System.Data.Entity.ModelConfiguration;
using Nop.Core.Domain.Catalog;

namespace Nop.Data.Mapping.Catalog
{
    public partial class ProductMap : EntityTypeConfiguration<Product>
    {
        public ProductMap()
        {
            this.ToTable("Product");
            this.HasKey(p => p.Id);
            this.Property(p => p.Name).IsRequired().HasMaxLength(400);
            this.Property(p => p.MetaKeywords).HasMaxLength(400);

            /* ... other mappings ... */
            /* ... refer 'Product.cs' ... */
        }
    }
}

我想你期待下面这样的解决方案,我知道已经很晚了。但我添加了这个供将来参考

这仅适用于小于4.0的情况

private List<ElasticStoreMapping> GetStoreMappingsForProducts(int[] productIds)
{
   var pProductIds = _dataProvider.GetParameter();
   pProductIds.ParameterName = "ProductIds";
   pProductIds.Value = productIds == null ? string.Empty : string.Join(",", productIds);
   pProductIds.DbType = DbType.String;

   return _dbContext.SqlQuery<ElasticStoreMapping>($"Exec GetStoreMappingForElastic @ProductIds", pProductIds).ToList();
}

您好@wooncherk,我正在尝试映射到一个select存储过程。如果我添加上述映射,它将尝试创建一个表而不是映射存储过程,不是吗?映射是告诉EF立即将DB表链接到代码,无论您使用存储过程还是LINQ进行选择,您都需要它:谢谢@wooncherk。问题是我的select是一个自定义实体-没有精确映射到表架构。那么在这种情况下我应该把它映射到什么呢?谢谢你迄今为止的帮助!自定义实体?所以您没有任何要从中选择的表?这怎么可能呢只要你有一个DB表,它可以是你自己的,在nopCommerce中是非标准的,你就需要有一个域模型和一个映射。那么只有EF可以完成剩下的工作: