1

我创建了一个简单的控制台测试应用程序,它可以与连接 SqlServer DB 的 Entity Framework 5 一起正常工作。然后,我尝试通过将项目引用从 MS EF5 替换为 Mono EF6,将项目转换为使用 Mono-3.0.10,添加对 mono EntityFramework.SqlServer.dll 的引用,并将 App.Config 文件更新为实体框架版本6.0.0.0。我已经设法在 Mono 3.0.10 配置文件下使用 Visual Studio 2012 构建项目,没有任何错误。

现在,当我尝试在 Mono 下运行项目时,我得到了一个异常:

System.Data.Entity.Core.ProviderIncompatibleException:提供程序未返回 ProviderManifest 实例----> System.UriFormatException:无效的 Uri。无法确定 Uri 的格式:System.Data.Resources.SqlClient.SqlProviderServices.ProviderManifest.xml。

任何人都可以提供帮助,或者至少提供一个代码示例来展示您如何使用 Mono 进行操作吗?谢谢

4

1 回答 1

0

我做了同样的事情并得到了同样的错误。我的解决方案是从源代码(Codeplex,版本 6.1.0alpha)编译 EntityFramework 并更改 SqlProviderManifest.cs 中的一行代码

    private static XmlReader GetXmlResource(string resourceName)
    {
        //return XmlReader.Create(typeof(SqlProviderManifest).Assembly().GetManifestResourceStream(resourceName), null, resourceName);
        return XmlReader.Create(typeof(SqlProviderManifest).Assembly().GetManifestResourceStream(resourceName), null, String.Empty);
    }

不好,但解决了我的问题,直到我尝试了一些非常奇怪的 Lamba 查询或尝试向数据库写入一些内容。

于 2013-12-26T14:54:44.140 回答