我想使用Effort运行测试,为此我需要指定一个连接字符串,该连接字符串还包含对.csdl,
.ssdl
和.msl
文件的引用。 (非工作)连接字符串现在看起来像这样:
<add name="SQLAzureConnection" connectionString=
"metadata=res://*/Model.projectContext.csdl|
res://*/Model.projectContext.ssdl|res://*/Model.projectContext.msl;
provider=System.Data.SqlClient;
provider connection string="Data Source=(LocalDb)\v11.0;Initial Catalog=Database_Nieuw;Integrated Security=false;MultipleActiveResultSets=False""
providerName="System.Data.EntityClient" />
Model.projectContext
部分错了,但我不知道应该是什么。
当我使用此字符串时,我在使用此连接字符串与Effort建立模拟数据库连接的测试中收到以下错误。
Test: failed
Result Message: Initialization method
project.Tests.Controllers.ShoppingCartTest.Initialize threw exception.
System.InvalidOperationException: System.InvalidOperationException: Resource res://*
/Model.seashell_brawl_corveeContext.csdl not found..
我不知道在哪里可以找到这个.csdl
文件,我只知道这是必要的。我无法从我的.emdx
文件中创建它们,因为我有一个代码优先的数据库,右键单击设计器并没有为Update database from model
提供another question作为解决方案的选项。我还设置了Metadata Artifact Processing" option to "Embed in Output Assembly。
有谁知道我在哪里可以找到这些文件以及如何正确引用它们?
/编辑:
好的,我现在很清楚,代码第一个项目中不存在这些文件。通过在注释中使用user20 ...的提示,连接字符串现在似乎可以正常工作。一个新问题如下:
`Test Outcome: Failed error 0040: The Type date is not qualified with a namespace or
alias. Only primitive types can be used without qualification.`
很奇怪,因为我到处都使用[DataType(DataType.DateTime)]
。有谁知道如何解决这个问题?
答案 0 :(得分:1)
正如user3038092所解释的那样:
使用Code First时,您没有.csdl,.ssdl和.msl。该 连接字符串也不同。基本上是正确的连接 string是所谓的“提供者连接字符串” 您当前的连接字符串
解决了这个问题。