在Entity Framework 4.0代码中首先找到.csdl,.ssdl和.msl文件的位置?

Erw*_*ers 6 c# entity-framework connection-string edmx vs-unit-testing-framework

我想运行与努力测试,要做到这一点,我需要指定一个ConnectionString中还包含一个参考.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=&quot;Data Source=(LocalDb)\v11.0;Initial Catalog=Database_Nieuw;Integrated Security=false;MultipleActiveResultSets=False&quot;"
 providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

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..
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里可以找到这个.csdl文件,我只知道它是必要的.我无法从我的创建这些.emdx文件,因为我有一个代码,第一个数据库,并单击鼠标右键在设计师不给选项Update database from model另外一个问题给了一个解决方案.我还将元数据工件处理"选项"设置为"嵌入输出程序集".

有谁知道我在哪里可以找到这些文件以及我如何正确引用它们?

/编辑:

好吧,我现在很清楚,代码第一个项目中不存在这些文件.通过在注释中使用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.` 
Run Code Online (Sandbox Code Playgroud)

很奇怪,因为我[DataType(DataType.DateTime)]随处可见.有谁知道如何解决这个问题?

Erw*_*ers 1

正如用户3038092所解释的:

使用 Code First 时,您没有 .csdl、.ssdl 和 .msl。连接字符串也不同。基本上,正确的连接字符串是当前连接字符串中所描述的“提供者连接字符串”

这解决了问题。

  • 给出问题的链接,而不是用户。 (3认同)