【发布时间】:2010-02-17 17:26:54
【问题描述】:
我正在使用 EF4 (VS2010 RC) 中的自我跟踪实体代码生成选项,并且我正在尝试使用动态数据来构建一个快速而肮脏的网站进行编辑。实体、数据上下文和 EDMX 文件都在单独的程序集中,当我在代码中调用所有内容时,此模型运行良好。但是当我尝试将它与动态数据一起使用时,我马上就失败了:
找不到“Core.Recording”的 CLR 类型。
在 System.Data.Metadata.Edm.MetadataWorkspace.GetObjectSpaceType(StructuralType edmSpaceType)
在 System.Web.DynamicData.ModelProviders.EFDataModelProvider.GetClrType(EntityType entityType)
在 System.Web.DynamicData.ModelProviders.EFDataModelProvider.CreateTableProvider(EntitySet entitySet,EntityType entityType)
在 System.Web.DynamicData.ModelProviders.EFDataModelProvider..ctor(对象 contextInstance,Func1 contextFactory)
at System.Web.DynamicData.ModelProviders.SchemaCreator.CreateDataModel(Object contextInstance, Func1 contextFactory)
在 System.Web.DynamicData.MetaModel.RegisterContext(Func`1 contextFactory,ContextConfiguration 配置)
在 D:\SimpleAdmin\Global.asax.cs:line 32 中的 SimpleAdmin.Global.RegisterRoutes(RouteCollection routes)
在 D:\SimpleAdmin\Global.asax.cs:line 61 中的 SimpleAdmin.Global.Application_Start(Object sender, EventArgs e) 处
RegisterRoutes 看起来像这样:
DefaultModel.RegisterContext((() => new DataContext.Entities()), new ContextConfiguration() { ScaffoldAllTables = true });
Context 上的默认构造函数已修改为使用我的连接字符串,如下所示:
<add name="Entities" connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string="Data Source=xxxxxxxxxx;Initial Catalog=MyDB;Persist Security Info=True;User ID=xxxx;Password=xxxxxxx;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
我想我没有在连接字符串中正确引用 O、C 或 CS 空格……但如果我在代码中调用上下文并使用它,它就可以正常工作。那我做错了什么?
谢谢!
【问题讨论】:
标签: entity-framework .net-4.0 dynamic-data