我正在尝试重写一个非常简单的应用程序,从C#到F#,现在使用SqlEntityConnection类型提供程序,我遇到了EF问题:"CLR类型到EDM类型的映射是不明确的",这可能发生在打开两个SqlEntityConnections,每个SqlEntityConnections都有一个同名的表.
但是,在这种情况下,这是因为EF通过类型提供程序显然是映射系统表.实际错误引用了dtproperties表 -
{"指定的模式无效.错误:\ r \n.CLR类型到EDM类型的映射是不明确的,因为多个CLR类型与EDM类型'dtproperties'匹配.以前发现CLR类型'SqlEntityConnection2.dtproperties',新发现的CLR类型' SqlEntityConnection1.dtproperties'."}
如何更改正在映射的表?谢谢.
(这在原始C#版本中也不是问题,它也使用EF.)
我正在尝试将Netataix与ODataService类型提供程序一起使用.这很好用:
type internal NetflixData = ODataService<"http://odata.netflix.com/Catalog/">
let internal NetflixContext = NetflixData.GetDataContext()
let godzillamovies = query { for t in NetflixContext.Titles do
where (t.Name.Contains "Godzilla")
select (t.Name, t.ReleaseYear)
} |> Seq.toList
Run Code Online (Sandbox Code Playgroud)
但返回哥斯拉电视节目的所有剧集,没有发行年份日期(嘘).所以,我将我的查询更新为:
let godzillamovies = query { for t in NetflixContext.Titles do
where (t.Name.Contains "Godzilla" && t.ReleaseYear.HasValue)
select (t.Name, t.ReleaseYear.Value)
} |> Seq.toList
Run Code Online (Sandbox Code Playgroud)
我遇到了以下错误:
<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>
<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">
<code></code>
<message xml:lang=\"en-US\">No property 'HasValue' exists in type 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' at position 45.</message>
</error>
Run Code Online (Sandbox Code Playgroud)
呃,HasValue不存在可空的整数?从何时起?