sql >> データベース >  >> RDS >> Mysql

C#エンティティフレームワーク:キーワードはサポートされていません:'port'

    使用されるベースの引数DbContext コンストラクター nameOrConnectionStringと呼ばれます 。したがって、構成ファイルからの接続文字列の名前、または実際の接続文字列のような名前をサポートします。

    後者の問題は、プロバイダー名を指定できないことです。 前者は構成からのものと同様に、この場合、EFはdefaultConnectionFactoryで指定されたものを使用します 構成要素。この場合はSystem.Data.Entity.Infrastructure.SqlConnectionFactoryです。 つまり、- SQL Server 、したがって、port サポートされていない例外。

    この問題を解決するには、いくつかの方法があります。

    (A)defaultConnectionFactoryを変更します 構成:

    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"></defaultConnectionFactory>
    

    (B)名前付き構成接続文字列を使用し、プロバイダーを明示的に指定します:

    <connectionStrings>
        <add name="MyDB" providerName="MySql.Data.MySqlClient" connectionString="server=myservername;port=3306;uid=myaccount;database=mydb;pwd=mypwd123" />
    </connectionStrings>
    

    コンストラクターを

    に変更します
    public MyDB()
    {
        // ...
    }
    

    または、名前がDbContextと異なる場合 派生クラス名:

    public MyDB() : base(connection_string_name)
    {
        // ...
    }
    

    (C)を使用しますDbConfigurationTypeAttribute

    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyDB : DbContext
    {
        // ...
    }
    


    1. mysql-pythonをインストールします(Windows)

    2. MySQLをロックせずに選択する方法はありますか?

    3. WooCommerceでproduct_typeをチェックするSQLクエリ

    4. OracleのROWIDTOCHAR()関数