忍者ブログ

MIT流なメモ

中央競馬の予想や購入したもののメモなどを書いて行こうかと。まあ、個人的なメモ的なブログです。

Entity Framework CoreはKey属性未対応

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Entity Framework CoreはKey属性未対応

ミグレーションは出来る事なら避けて進みたい部分なんですが、SQL Server Expressの時には全く意識せず、単にコードファーストしていれば問題なかったのに、SQLiteのラッパーはミグレーションが好きな様です。で、System.Data.SQLiteでもだいぶ苦労しましたが、Microsoft.EntityFrameworkCore.Sqlite(Tools)でも苦労させられました。
プロジェクトがスタートアップ プロジェクトに設定されてないんじゃないかとか何とか言われ、プロジェクトのプロパティ色々見て、グーグル先生にも問合せするも解決出来ず時間だけが過ぎる感じ。で、まあ、結論的にはターゲットCPUをJV-Linkが64it未対応な為の対策でAnyCPUではなくx86にしていたのが原因だった様です。取敢えず、ミグレーションする為にAnyCPUに戻してビルドするとミグレーションが動きました。

 

余談ですが、このミグレーション処理の説明では最初にEnable-Migrationsをするとあったのですが、現在はこれは不要になったと出ます。

Add-Migration プロジェクト名

とすれば動きます。

 

で、新たな問題が表題です。これまでEntity Framework 6だったのですが、.NET 6に移行する為にEntity Framework Coreになったんですが、Key属性未対応って事で複合キーは全て明示的に指定する必要が出てきた。この方法もC#のサンプルから途方に暮れてグーグル先生が解決してくれました。

Protected Overrides Sub OnModelCreating(ByVal modelBuilder As ModelBuilder)
    modelBuilder.Entity(Of エンティティ)().HasKey(Function(e) New With {e.key1,e.key2})
End Sub

な感じで57個あるテーブルのほぼ全てに近い数が複合キーなので記述する事になりました(>_<)

 

ここまでたどり着くのにVSC 2022のバグじゃないかと思われるのは、プロジェクト最初に作る時に自動で追加されるForm1が度々復活してくる事。プロジェクトのプロパティ変更してビルドする度にmdiMainに変更したスタートアップ オブジェクトがForm1に戻って無いよってエラーになるorz まあ、だからpreviewが外れないのかもしれないけどね。

拍手[0回]

PR

コメント

カレンダー

04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

最新コメント

プロフィール

HN:
MIT
性別:
非公開

バーコード

ブログ内検索

コガネモチ

アクセス解析