微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – BulkInsert – 空间’CSSpace’没有关联的集合

几天前,我遇到了EF中一个最着名的问题,即批量插入.经过一些谷歌搜索我发现: http://efbulkinsert.codeplex.com/

在使用复杂的数据模型失败后,我回到了一个简单的测试人员.
我正在尝试插入的实体如下所示:
Id – Int
名称 – 字符串

使用VS生成实体,然后使用VS内置功能跟踪数据库.
我尝试了两个EF,4和5.没有工作.例外是:

空间’Csspace’没有相关的集合.

两种数据模型的例外情况相同.

据我所知,我使用了所有依赖项.

代码

using (Model1Container ctx = new Model1Container())
{
    List<TestEntity> list = new List<TestEntity>();

    for (int i = 0; i < 10; i++)
    {
        TestEntity enti = ctx.TestEntitySet.Create();
        enti.Name = "stav" + i;
        list.Add(enti);
        ctx.TestEntitySet.Add(enti);
    }

    ctx.BulkInsert<TestEntity>(list);
}

stacktrace是这样的:

at System.Data.Metadata.Edm.MetadataWorkspace.GetItemCollection(DataSpace dataSpace,Boolean required)
   at System.Data.Metadata.Edm.MetadataWorkspace.GetItemCollection(DataSpace dataSpace)
   at EntityFramework.MappingAPI.Mappers.MapperBase.get_TphData() in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\MapperBase.cs:line 59
   at EntityFramework.MappingAPI.Mappers.MapperBase.MapEntity(String typeFullName,EdmType edmItem) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\MapperBase.cs:line 284
   at EntityFramework.MappingAPI.Mappings.DbMapping..ctor(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappings\DbMapping.cs:line 80
   at EntityFramework.MappingAPI.EfMap.Get(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\EfMap.cs:line 60
   at EntityFramework.MappingAPI.Extensions.MappingApiExtensions.Db(DbContext ctx,Type type) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Extensions\MappingApiExtensions.cs:line 51
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source,Func`2 keySelector,Func`2 elementSelector,IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,Func`2 elementSelector)
   at EntityFramework.BulkInsert.Helpers.MappedDataReader`1..ctor(IEnumerable`1 enumerable,IEfBulkInsertProvider provider) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Helpers\MappedDataReader.cs:line 58
   at EntityFramework.BulkInsert.Providers.EfsqlBulkInsertProviderWithMappedDataReader.Run[T](IEnumerable`1 entities,sqlTransaction transaction,BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\EfsqlBulkInsertProviderWithMappedDataReader.cs:line 22
   at EntityFramework.BulkInsert.Providers.ProviderBase`2.Run[T](IEnumerable`1 entities,IDbTransaction transaction,BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\ProviderBase.cs:line 77
   at EntityFramework.BulkInsert.Providers.ProviderBase`2.Run[T](IEnumerable`1 entities,BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\ProviderBase.cs:line 109
   at EntityFramework.BulkInsert.Extensions.BulkInsertExtension.BulkInsert[T](DbContext context,IEnumerable`1 entities,sqlBulkcopyOptions sqlBulkcopyOptions,Nullable`1 batchSize) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Extensions\BulkInsertExtension.cs:line 95
   at EntityFramework.BulkInsert.Extensions.BulkInsertExtension.BulkInsert[T](DbContext context,Nullable`1 batchSize) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Extensions\BulkInsertExtension.cs:line 75
   at TestApp.Program.Main(String[] args) in c:\CCViews\I0T_PIMBuilder_dev\Tashtiot_VOB\PIMBuilder_COMP\TestApp\Program.cs:line 25
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,Object state)
   at System.Threading.ThreadHelper.ThreadStart()

有任何想法吗?

解决方法

这个库是为代码优先而制作的.我还没有完成DB-first.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐