C# Entyty Framework Postgresでごにょごにょ

PostgresとC#でEntyty Frameworkを見ようみまねで使っています。
まったくわけがわかっていないので、解説などは書けませんが、やった事、どういう動作になったかを少しずつ自分用の覚書にしながら後に蓄積していきたいと思います。

今日の収穫はモデルに利用するフィールドは、keyが2つある場合、ちゃんとkeyを2つ設定し、Orderをつけないと、値は取得できるものの同じ値が何回にもわたって出るだけで、思った通りの値が取得できないという事です。

Keyが2つある場合は複合キーの設定必須です。

記載はこのようにします。

キーが2つあるのに、1つしかキーを設定しないと、重複するレコードが大量に出力され思った通りの結果は得られません。

では、キーを設定しなければと思うと、エラーが発生します。

entyty.jpg

 

適切に複合キーの設定をする必要があります。

複合キーを設定する場合、2つのカラムに
[Key]
[Key]

とつけるのではだめです。

Primary Keyをはっきりさせる必要があり、Orderで区別します。
[Key, Column(Order = 0)]
[Key, Column(Order = 1)]

また、EntytyFrameworkと、コレクションは切っても切れない関係にあり、コレクションを多用する事になります。

このサイトが分かりやすいです。

テーブルデータをそのまま抽出する

 

IEnumerable
指定した型のコレクションに対する単純な反復処理をサポートする列挙子を公開します。

Object.GetType メソッド ()
現在のインスタンスの Type を取得します。

Type.GetGenericArguments メソッド ()
クローズ ジェネリック型の型引数またはジェネリック型定義の型パラメーターを表す Type オブジェクトの配列を返します。

System.Reflection.PropertyInfo
プロパティの属性を取得し、プロパティのメタデータにアクセスできるようにします。

Dictionary クラス
キーと値のコレクションを表します。

System.Collections
System.Collections 名前空間には、さまざまな標準、特殊、およびジェネリックなコレクション オブジェクトを定義する型が含まれます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です