読者です 読者をやめる 読者になる 読者になる

テーブルをコピーする

構造とデータがコピーされる。

プライマリキーやインデックス、制約はコピーされない。

SELECT * INTO new_table FROM table 

 

INSERT (Transact-SQL)

Strict On 時の AddHandler .MouseClick, New EventHandler(AddressOf ...)

Option Strict On を設定しているとき、

AddHandler .MouseClick, New EventHandler(AddressOf NotifyIcon1_MouseClick())

以下のエラーが出る場合の対処方法。

'Private Sub NotifyIcon1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs)' のパラメーター 'e' に対して引数が指定されていません。
'Private Sub NotifyIcon1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs)' のパラメーター 'sender' に対して引数が指定されていません。

ちなみに定義側は以下の引数を受ける。

Private Sub NotifyIcon1_MouseClick(sender As Object, e As MouseEventArgs)

  If e.Button = Windows.Forms.MouseButtons.Left Then
 …
  End If
End Sub 

 

<対処方法>

AddHandler .MouseClick, New MouseEventHandler(AddressOf NotifyIcon1_MouseClick())

 

以上

Entity Framework 6 + MySQL 5.6 でADO.NET Entity Data Model デザイナを使う手順

Entity Framework 6 を MySQL 環境でADO.NET Entity Data Model デザイナを使う手順。

【この手順を行った環境】

【手順】 

  1. mysql-visualstudio-plugin-1.1.1.msiのインストール 
  2. mysql-connector-net-6.8.3.msiのインストール
  3. NuGetパッケージの管理で以下をインストール
    ・EntityFramework (6.1.1)
    Mysql.Data (6.9.3)
    Mysql.Data.Entities (6.8.3.0)
    Mysql.Web (6.9.3)
  4. 手順3までの操作で Web.config (あるいはスタンドアロンAPなら App.config) が修正されます。
  5. connectionStringタグを若干修正します。このあたり分かりにくいので、手順3、手順4を行った後のコンフィグレーションの例を脚注に載せておきます。*1

ダウンロード先:

MySQL :: MySQL for Visual Studio 1.1.1 Beta available for download

MySQL :: Download Connector/Net

  

ADO.NET Entity Data Model デザイナ利用時の注意点】

ウィザードが前回のDB接続先を表示してくれないため?、毎回、ウィザード完了後にconnectionStringsタグに子タグが定義されてしまいます。毎回、手動で消します。

 

【ハマったときは】

◆Web.configの内容を書き換えても何も状況が変わらない。あるいは、ウィザードの途中で変な警告が出る。

→リビルドを行う。リビルドもエラーがあってもダメ。取り合えずでもリビルドが完遂するように取り繕うこと。

WebアプリからDBアクセスを行うと例外が発生する。

Keyword not supported.
パラメーター名:metadata

 →connectionStringの子タグの providerName属性が"MySql.Data.MySqlClient"になっているためかも。"System.Data.EntityClient"にする。

 ◆Code Firstで作っていないのにWebアプリからDBアクセスを行うと以下の例外が発生する。

The context is being used in Code First mode with code that was generated from an EDMX file for either Database First or Model First development. 以下、略。

行 20: 
行 21:     Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
行 22:         Throw New UnintentionalCodeFirstException()
行 23:     End Sub
行 24: 

 →connectionStringの子タグのconnectionString属性にmetadata=を指定していないため

 

参考にしたサイト:


Enable Entity Framework 6 for MySql (C#) in WinForms of Microsoft Visual Studio 2013 - Stack Overflow

 

*1:

関係ありそうな箇所の抜粋です
<?xml version="1.0" encoding="utf-8"?>
<configuration>

<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

<connectionStrings>
<add name="HogeEntities" connectionString="metadata=res://*/Models.HogeModel.csdl|res://*/Models.HogeModel.ssdl|res://*/Models.HogeModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=HOGE;persistsecurityinfo=True;database=sampledb&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

<system.web>
<membership defaultProvider="MySQLMembershipProvider">
<providers>
<remove name="MySQLMembershipProvider" />
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
</providers>
</membership>
<profile defaultProvider="MySQLProfileProvider">
<providers>
<remove name="MySQLProfileProvider" />
<add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</profile>
<roleManager defaultProvider="MySQLRoleProvider">
<providers>
<remove name="MySQLRoleProvider" />
<add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</roleManager>
<siteMap defaultProvider="MySqlSiteMapProvider">
<providers>
<remove name="MySqlSiteMapProvider" />
<add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</siteMap>
<webParts>
<personalization defaultProvider="MySQLPersonalizationProvider">
<providers>
<remove name="MySQLPersonalizationProvider" />
<add name="MySQLPersonalizationProvider" type="MySql.Web.Personalization.MySqlPersonalizationProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</personalization>
</webParts>
</system.web>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.9.3.0" newVersion="6.9.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>

<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

</configuration>

EFTools

Entity Framework 5 から 6.1.1 に変更したところ、コンフィグレーションの entityFramework タグ内の providers タグでエラーが出るようになった。

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework> 

使っている Entity Framework と Visual Studio のバージョンの組み合わせのあった EF Tools をインストールすると解決する。

Download Entity Framework 6 Tools for Visual Studio 2012 & 2013 from Official Microsoft Download Center

Download Entity Framework 6.1.2 Beta 1 Tools for Visual Studio 2012 & 2013 from Official Microsoft Download Center

 


entity framework - How to resolve Warning : The element 'entityFramework' has invalid child element 'providers'. List of possible elements expected: 'contexts' - Stack Overflow