我一直在使用实体框架CTP,首先使用代码,如
this tutorial
我已将以下内容添加到App.Config文件中:
<connectionStrings>
<add name="MyData"
connectionString="Data Source=D:\myProject\myDb.sdf;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
但是,当我尝试运行测试时,它在尝试创建数据库时抛出以下错误:
试验方法
MyProjet.Tests.Administration.ModlelTests.Business.testgetbusinesses列表
System.Reflection.TargetInvocationException异常:
调用的目标---&燃气轮机;
System.TypeInitialization异常:
的类型初始值设定项
System.Security.VerificationException异常:
操作可能会破坏系统的稳定
运行时。
具有以下堆栈跟踪:
System.Data.SqlServerCe.SqlCeProviderServices..ctor()
System.Data.SqlServerCe.SqlCeProviderServices..cctor()
System.RuntimeFieldHandle.GetValue(RtFieldInfo
字段,对象实例,RuntimeType
fieldType,RuntimeType declaringType,
布尔值(&P);域(已初始化)
obj,布尔doVisibilityCheck,
System.Reflection.RtFieldInfo.GetValue(对象
System.Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProviderServices\u Instance\u GetValue()
System.Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProviderServices\u实例()
服务类型)
System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory)
(工厂)
(连接)
System.Data.Entity.ModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(数据库连接
存储连接)
System.Data.Entity.Infrastructure.DbModel.CreateObjectContext[TContext](数据库连接
现有连接)
System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel
System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
System.Data.Entity.Internal.InternalContext.Initialize()
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(类型
实体类型)
System.Data.Entity.Internal.Linq.EfInternalQuery
1.Initialize()
System.Data.Entity.Internal.Linq.EfInternalQuery
1.包含(字符串)
路径)
System.Data.Entity.Infrastructure.DbQuery`1.Include(字符串
路径)
MyProjet.Areas.Administration.Models.BusinessModel.GetBusinesses()
第47行
MyProjet.Tests.Administration.ModlelTests.Business.testGetBusinessList()
D:\projects2010\MyProjet\MyProjet.Tests\Administration\ModlelTests\Business.cs:
第45行
我尝试过替换MVC应用程序中现有的MyData连接字符串,效果很好。只有将其添加到测试项目时,才会导致此问题。此外,当指向SQL或sqlexpress数据库时,测试项目可以正常工作。
我已经为此挣扎了一段时间,只是想不通。我肯定我忽略了一些简单的事情。