Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9703

Entity Framework Coreでクラスをメンバとして扱う方法

$
0
0

はじめに

日頃からEF Coreを多用しているじゅううんです。

ちょっとハマったことがあったので備忘程度に書いておきます。

コードファーストのマイグレーションが通らない

以下のようなクラスでコードファーストマイグレーションを行おうとしました。

publicclassPerson{publicintId{get;set;}publicGeoCoordinatePosition{get;set;}}publicclassGeoCoordinate{publicdoubleLatitude{get;set;}publicdoubleLongitude{get;set;}}

理想としてはこういうテーブルができてほしい

カラム名
Idint
Position_Latitudedouble
Position_Longitudedouble

>Add-MigrationinitTheentitytype'GeoCoordinate'requiresaprimarykeytobedefined.

できない

なぜ

  1. EFがGeoCoordinateを外部キーとして認識
  2. テーブルを作ろうとする
  3. [Key]属性がないので主キーが見つからないとエラーが出る

解決策

publicclassGeoCoordinate{publicdoubleLatitude{get;set;}publicdoubleLongitude{get;set;}}

これを

[Owned]publicclassGeoCoordinate{publicdoubleLatitude{get;set;}publicdoubleLongitude{get;set;}}

とするだけです。

image.png

できました。

おわり。


Viewing all articles
Browse latest Browse all 9703

Trending Articles