System.Data.Entity.Design.PluralizationServices 在单声道中出错

本文关键字:声道 出错 单声道 Entity Data Design PluralizationServices System | 更新日期: 2023-09-27 18:32:23

我有一个成熟的C#应用程序,它一直在Windows上运行,它正在移植到Linux(在Mono上),我遇到了一个错误,我无法解决 System.Data.Entity.Design 中的PluralizationServices。

导致问题的代码行如下所示:

PluralizationService pluralizationService = PluralizationService.CreateService(System.Globalization.CultureInfo.InvariantCulture);

尽管这从未在 Microsoft.NET 下运行的Windows应用程序上引起任何问题,但是当程序在Mono下运行时,我会收到以下错误:

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

我在这里发现其他人似乎遇到了类似的问题,他们只是将 .dll 的 .NET 版本复制到他们的 Mono 项目中,它为他们解决了这个问题。我尝试了相同的方法,但是随后遇到了以下错误:

Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for MudSharp.Framework.LanguageHelpers ---> System.InvalidProgramException: Invalid IL code in System.Data.Entity.Design.PluralizationServices.PluralizationService:CreateService (System.Globalization.CultureInfo): method body is empty.

我在 Ubuntu 上使用 Mono 3.10。我找不到任何关于 Mono 不支持这些功能的建议,我只是不确定如何继续调试此问题。

任何帮助将不胜感激。

System.Data.Entity.Design.PluralizationServices 在单声道中出错

看起来更高版本的 Mono 确实支持复数服务 - 请参阅函数支持状态。

但是,多元化服务目前仅支持英语。

你试过这个吗:

PluralizationService pluralizationService = PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-us"));`

仅供参考,看起来很容易使用EntityModelSchemaGenerator类扩展到其他语言。

  • Plurally 是实体框架多元化服务的单声道兼容替代品。

  • 使用多个测试库源代码 jsonclassgenerator

  • IDE: Xamarin Studio 6.1.3
  • 框架: 单声道/.NET 4.5
  • 添加NuGet包:Newtonsoft.Json,复数
  • Json类生成器.cs第 10,39 行

  • 使用复数.复数器

    using Plurally;
    private Pluralizer pluralizationService = new Pluralizer(new CultureInfo("en-us"));
    
  • JsonType.csline 8

    using Plurally;
    
  • Xamasoft.JsonClassGenerator.JsonClassGenerator GenerateClasses Result

    {
        "UserAccount": "",
        "UserPassword": "",
        "ExtraInfo": ""
    }
    
    // Generated by Xamasoft JSON Class Generator
    // http://www.xamasoft.com/json-class-generator
    using System;
    using System.Collections.Generic;
    using Newtonsoft.Json.Linq;
    namespace CommonModels
    {
        public class loginArgs
        {
            public string UserAccount { get; set; }
            public string UserPassword { get; set; }
            public string ExtraInfo { get; set; }
        }
    }