レガシーPOCOモデルでレガシーデータベースをマップしようとしています。 Entity Frameworkを気にせずに開発しているデータベースとモデルの間には、いくつかの小さな違いがあります。Entity Frameworkコードファースト - ヌル入力不可タイプのデフォルト値
私が直面している課題は、あまりにも多くのコードが依存しているため、できるだけ侵襲の少ない(データベースのコードやモデルに触れたくない)ようにしたいということです。
私は、レガシーモデルからのPOCOを再利用して、コードの最初のアプローチを使用してエンティティをマップしようとしました。いくつかのnull可能な数値の列が、プリミティブなInt32(nullableではない)として宣言されているプロパティにマップされていることがわかったので、すべてが動作するように見えました。
CREATE TABLE [dbo].[SomeTable](
[Id] [int] NOT NULL,
[Descrip] [nvarchar](50) NULL,
[SomeNumericCol] [int] NULL,
CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)) ON [PRIMARY]
と対応POCO:
public class SomeTable
{
public Int32 Id { get; set; }
public string Descrip { get; set; }
public Int32 SomeNullableCol { get; set; }
}
あなたが列SomeNullableColと対応に差がある見るかもしれませんが例えば
、のは、私はテーブルを持っているとしましょう最後の型はnullを許さないプリミティブなint型であるため
SomeNullableColの型をnull可能なint(私はInt32?を意味します)に変更しなくても、このマッピングを動作させるためのハックはありますか?可能であれば、クラスのコードには触れません。
ありがとうございます!
いいえ、私はできません:-(。私が言ったように、それらのプロパティにintに依存するコードが多すぎるので、nullable型に変更することはできません。 lotのプロパティも変化する... – Maxolidean