首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >参数'xmlReader‘无效。必须提供至少一个.ssdl工件

参数'xmlReader‘无效。必须提供至少一个.ssdl工件
EN

Stack Overflow用户
提问于 2014-11-12 16:16:57
回答 3查看 7.4K关注 0票数 2

我有一个类将执行基于实体框架的查询。这个类是一个通用类,是DbContext独立的类(我的意思是没有ssdlsemiliar文件)。在这个类中,我也将执行原始sql查询。为此,我添加了如下方法:

代码语言:javascript
运行
复制
 Return _dbContext.Database.SqlQuery(Of String)(query).FirstOrDefault()

执行标量。但这一阶段有一个错误,即:

代码语言:javascript
运行
复制
Additional information: Argument 'xmlReader' is not valid. A minimum of one .ssdl artifact must be supplied.

当我要创建DbContext的新实例时,我将这个连接字符串传递给它:

代码语言:javascript
运行
复制
metadata=res://*;provider=System.Data.SqlClient;provider connection string="Data Source=.;Initial Catalog=MyDb;integrated security=true;

错误细节:

代码语言:javascript
运行
复制
System.ArgumentException was unhandled by user code
HResult=-2147024809
Message=Argument 'xmlReader' is not valid. A minimum of one .ssdl artifact must be supplied. 
Source=EntityFramework
StackTrace:
   at System.Data.Entity.Core.EntityUtil.CheckArgumentEmpty[T](IEnumerable`1& enumerableArgument,  Func`2 errorMessage, String argumentName)
   at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths)
   at System.Data.Entity.Core.Metadata.Edm.MetadataCache.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader)
   at System.Data.Entity.Core.Metadata.Edm.MetadataCache.<>c__DisplayClass5.<>c__DisplayClass7.<GetMetadataWorkspace>b__1()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at System.Data.Entity.Core.Metadata.Edm.MetadataCache.<>c__DisplayClass5.<>c__DisplayClass7.<GetMetadataWorkspace>b__4()
   at System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace.LoadAndCheckItemCollection[T](Func`1 itemCollectionLoader)
   at System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace.<>c__DisplayClass16.<.ctor>b__f()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace.GetItemCollection(DataSpace dataSpace, Boolean required)
   at System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace.GetItemCollection(DataSpace dataSpace)
   at System.Data.Entity.Core.Objects.ObjectContext.InitializeMappingViewCacheFactory(DbContext owner)
   at System.Data.Entity.Core.Objects.ObjectContext..ctor(EntityConnection connection, Boolean isConnectionConstructor, ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, Translator translator, ColumnMapFactory columnMapFactory)
   at System.Data.Entity.Core.Objects.ObjectContext..ctor(EntityConnection connection)
   at System.Data.Entity.Internal.InternalConnection.CreateObjectContextFromConnectionModel()
   at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()
   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   at System.Data.Entity.Internal.InternalContext.Initialize()
   at System.Data.Entity.Internal.LazyInternalContext.get_ObjectContext()
   at System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery[TElement](String sql, Nullable`1 streaming, Object[] parameters)
   at System.Data.Entity.Internal.InternalContext.ExecuteSqlQueryAsIEnumerator[TElement](String sql, Nullable`1 streaming, Object[] parameters)
   at System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(Type elementType, String sql, Nullable`1 streaming, Object[] parameters)
   at System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()
   at System.Data.Entity.Infrastructure.DbRawSqlQuery`1.GetEnumerator()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at IdeaDataAccess.EF.EntityFrameworkQueryPerformer`1.ExecuteScalar(String query)
   at IdeaBusiness.DatabaseCore.Core`2.ExecuteScalar(String query)
   at IdeaBusiness.DatabaseCore.Facade.ExecuteScalar(String query)
   at IdeaComponent.IdeaComponent.IdeaGridView.OnRowCreated(GridViewRowEventArgs e) in D:\Solutions\IdeaCenter\Source Code\IdeaCenterV2\IdeaComponent\Components\GridView\IdeaGridView.vb:line 515
   at System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource)
   at System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding)
   at System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data)
   at System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data)
   at System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data)
   at System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback)
   at System.Web.UI.WebControls.DataBoundControl.PerformSelect()
   at System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
   at System.Web.UI.WebControls.GridView.DataBind()
   at WebApplication1.WebForm1.Page_Load(Object sender, EventArgs e) in C:\Users\idea\Desktop\New folder\WebForm1.aspx.vb:line 8
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   InnerException: 
EN

Stack Overflow用户

发布于 2014-11-15 16:33:43

看看您的连接字符串,它看起来有点缺乏。这是当前项目中的一个,添加了各种行符以便于阅读:

代码语言:javascript
运行
复制
          <connectionStrings>
             <add name="PowerDespatchConnection" 
    connectionString="

metadata=res://*/PowerDespatch.csdl|
         res://*/PowerDespatch.ssdl|
         res://*/PowerDespatch.msl;
         provider=System.Data.SqlClient;
provider connection string=&quot;data source=athena;initial catalog=RCDev;Integrated Security=SSPI;App=EntityFramework&quot;
           " 
providerName="System.Data.EntityClient" />

您缺少csdl、ssdl和msl部分。(PowerDespatch是模型的名称。)您应该在EF项目文件夹下的obj\Debug\edmxResourcesToEmbed中找到匹配的文件。

如果缺少这些内容,那么有关如何创建模型的内容是不正确的。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26891571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档