Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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# 错误-“;指定的LINQ表达式包含对与不同上下文关联的查询的引用。”;_C#_.net_Asp.net Mvc_Nopcommerce - Fatal编程技术网

C# 错误-“;指定的LINQ表达式包含对与不同上下文关联的查询的引用。”;

C# 错误-“;指定的LINQ表达式包含对与不同上下文关联的查询的引用。”;,c#,.net,asp.net-mvc,nopcommerce,C#,.net,Asp.net Mvc,Nopcommerce,我正在使用NopCommerce并使用本教程制作插件: 但当我运行应用程序时,我收到以下错误: “指定的LINQ表达式包含对以下查询的引用: 与不同的背景有关” 依赖注册商类别: public class LookDependencyRegistrar : IDependencyRegistrar { private const string CONTEXT_NAME = "nop_object_context_look"; p

我正在使用NopCommerce并使用本教程制作插件:

但当我运行应用程序时,我收到以下错误:

“指定的LINQ表达式包含对以下查询的引用: 与不同的背景有关”

依赖注册商类别:

 public class LookDependencyRegistrar : IDependencyRegistrar
        {
            private const string CONTEXT_NAME = "nop_object_context_look";

            public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
            {
                //data layer
                var dataSettingsManager = new DataSettingsManager();
                var dataProviderSettings = dataSettingsManager.LoadSettings();

                if (dataProviderSettings != null && dataProviderSettings.IsValid())
                {
                    //register named context
                    builder.Register<IDbContext>(c => new LookObjectContext(dataProviderSettings.DataConnectionString))
                        .Named<IDbContext>("nop_object_context_Look")
                        .InstancePerHttpRequest();

                    builder.Register<IDbContext>(c => new Look_Product_MappingObjectContext(dataProviderSettings.DataConnectionString))
                        .Named<IDbContext>("nop_object_context_Look_Product")
                        .InstancePerHttpRequest();

                    builder.Register<LookObjectContext>(c => new LookObjectContext(dataProviderSettings.DataConnectionString))
                        .InstancePerHttpRequest();
                    builder.Register<Look_Product_MappingObjectContext>(c => new Look_Product_MappingObjectContext(dataProviderSettings.DataConnectionString))
                       .InstancePerHttpRequest();

                }
                else
                {
                    //register named context
                    builder.Register<IDbContext>(c => new LookObjectContext(c.Resolve<DataSettings>().DataConnectionString))
                        .Named<IDbContext>("nop_object_context_Look")
                        .InstancePerHttpRequest();

                    builder.Register<IDbContext>(c => new Look_Product_MappingObjectContext(dataProviderSettings.DataConnectionString))
                        .Named<IDbContext>("nop_object_context_Look_Product")
                        .InstancePerHttpRequest();

                    builder.Register<LookObjectContext>(c => new LookObjectContext(c.Resolve<DataSettings>().DataConnectionString))
                        .InstancePerHttpRequest();
                    builder.Register<Look_Product_MappingObjectContext>(c => new Look_Product_MappingObjectContext(c.Resolve<DataSettings>().DataConnectionString))
                        .InstancePerHttpRequest();                    
                }

                //override required repository with our custom context
                builder.RegisterType<EfRepository<Look>>()
                    .As<IRepository<Look>>()
                    .WithParameter(ResolvedParameter.ForNamed<IDbContext>("nop_object_context_Look"))
                    .InstancePerHttpRequest();

                builder.RegisterType<EfRepository<Look_Product_Mapping>>()
                    .As<IRepository<Look_Product_Mapping>>()
                    .WithParameter(ResolvedParameter.ForNamed<IDbContext>("nop_object_context_Look_Product"))
                    .InstancePerHttpRequest();

                //Register services
                builder.RegisterType<LookService>().As<ILookService>();
            }
            public int Order
            {
                get { return 0; }
            }
        }
公共类LookDependencyRegistrator:IDEPendencyRegistrator
{
private const string CONTEXT\u NAME=“nop\u object\u CONTEXT\u look”;
公共虚拟无效寄存器(ContainerBuilder、ITypeFinder和typeFinder)
{
//数据层
var datasettingmanager=new datasettingmanager();
var dataProviderSettings=DataSettingManager.LoadSettings();
if(dataProviderSettings!=null&&dataProviderSettings.IsValid()
{
//寄存器命名上下文
Register(c=>newlookObjectContext(dataProviderSettings.DataConnectionString))
.Named(“nop\u object\u context\u Look”)
.InstancePerHttpRequest();
builder.Register(c=>new Look\u Product\u MappingObjectContext(dataProviderSettings.DataConnectionString))
.命名(“nop\u对象\u上下文\u外观\u产品”)
.InstancePerHttpRequest();
Register(c=>newlookObjectContext(dataProviderSettings.DataConnectionString))
.InstancePerHttpRequest();
builder.Register(c=>new Look\u Product\u MappingObjectContext(dataProviderSettings.DataConnectionString))
.InstancePerHttpRequest();
}
其他的
{
//寄存器命名上下文
Register(c=>newlookObjectContext(c.Resolve().DataConnectionString))
.Named(“nop\u object\u context\u Look”)
.InstancePerHttpRequest();
builder.Register(c=>new Look\u Product\u MappingObjectContext(dataProviderSettings.DataConnectionString))
.命名(“nop\u对象\u上下文\u外观\u产品”)
.InstancePerHttpRequest();
Register(c=>newlookObjectContext(c.Resolve().DataConnectionString))
.InstancePerHttpRequest();
Register(c=>newlook\u Product\u MappingObjectContext(c.Resolve().DataConnectionString))
.InstancePerHttpRequest();
}
//使用自定义上下文覆盖所需的存储库
builder.RegisterType()
.As()
.WithParameter(ResolvedParameter.ForName(“nop\u object\u context\u Look”))
.InstancePerHttpRequest();
builder.RegisterType()
.As()
.WithParameter(ResolvedParameter.ForName(“nop\u对象\u上下文\u外观\u产品”))
.InstancePerHttpRequest();
//注册服务
builder.RegisterType().As();
}
公共秩序
{
获取{返回0;}
}
}

如何解决这个问题?

我认为这是因为您在插件中创建的实体包含Nop.Core实体(如产品)之间的关系


实体框架不支持跨项目关系。您必须从实体中删除Nop.Core实体,例如(产品属性),并使用ProductId int。

错误消息非常简单。您正在构造一个引用来自多个数据源的对象的查询。它不能处理那个。请将查询分开,或者使用单个数据源。从它的外观来看,
LookObjectContext
Look\u Product\u MappingObjectContext
访问相同的连接字符串,因此应该可以将它们合并到一个
DbContext