web-dev-qa-db-ja.com

Entity Frameworkの使用中にC#コードファーストアプローチでSQLサーバーのデータ型を照合する際に従うべき戦略

SQL Serverのデータ型をEntityFrameworkのC#コードファーストアプローチと照合する際に、C#のデータ型がSQL Serverのデータ型と正確に一致するようにするために留意すべき具体的なポイントは何ですか?

具体的には、SQL Serverデータ型をC#データ型に一致させる必要がありますが、SQL Serverには存在するがC#には存在しない特定のデータ型hierarchyidについて、どうすればそれを可能にすることができますか?

2

EFでサポートされていないデータ型がいくつかあります。

geography
geometry
hierarchyid
sql_variant

http://thedatafarm.com/data-access/sql-server-2008-data-types-and-entity-framework-4/

私はそのタイプを使用したことはありませんが、dapperを使用すると、この同様の問題(画像データ型の処理)も発生します。この制限に対処する最も簡単な方法は、古いOLE DB。

それ以外は、 this を参照として使用します。

1
kirie

EFは、ほとんどのデータ型のマッピングを処理する必要があります。処理されないものを使用している場合は、マッピングをカスタマイズできるはずです。最も簡単なのは、不明なタイプのマッピングを除外し、エンティティ内またはエンティティに関連するフラットな方法でオブジェクトを保存することです。欠点は、クエリがより手間がかかる可能性があり、読み取りと書き込みのときにオブジェクトを変換するための何かを提供する必要があることですが、ビューモデルに変換するときにすでにそれを行っている可能性があります。

0
Jogai

EFは、コードを具象データベースから分離します。各データベースには独自の機能がありますが、EFのAPIはそれらすべてを表現するほど強力ではありません。実際、クライアント側から見ると、EFは単純なオブジェクトストレージです。

したがって、特定のデータ型、セキュリティチェック、トリガー、ビューなどのデータベース機能を管理する場合、EFはそれを支援できません。私はあなたを助けることができるものを見たことがありません。システムのSQLサーバーに依存関係を導入する必要があります。

0
astef