Entity Frameworkでモデルプロパティをブール値に設定する

entity-framework

質問

私はエンティティフレームワークについて少し学び始めたばかりで、ORMの経験はあまりありません。

私の小さなアプリでは、私は1つのテーブルを持っています、このSQLサーバーテーブルには、PrimaryKey(int)、Name(文字列)、Flag(tinyint)を含むいくつかの列があります。

このテーブルをインポートしたときに、Flagsのデータ型がバイトとして自動的に割り当てられました。これは問題ありませんが、Flagは実際にはブール値でなければならないので、私は

  1. マッピング詳細をクリック
  2. Flagプロパティを選択した
  3. TypeをByteからBooleanに変更しました
  4. アプリケーションを再構築した

それから私はこのエラーを得ました:

エラー2019年:指定されたメンバーマッピングは無効です。型 'MyModel.MyItem'のメンバ 'MyFlag'の型 'Edm.Boolean [Nullable = True、DefaultValue =]'は、メンバ 'MyFlag'の 'SqlServer.tinyint [Nullable = True、DefaultValue =]'と互換性がありません「MyModel.Store.MyItem」と入力します。

持っている方法はありますか

MyItem item = new MyItem();
item.Flag = true;

フラグをデータベースの1に保存しますか。

受け入れられた回答

MyFlagのデータ型をデータベースのbitに変更できます。


人気のある回答

私はあなたが部分的なクラスを作り、適切にそのフィールドに読み書きする別のフィールドを使用しなければならないというtinyintを考える。ただし、フレームワークはbitフィールドをbooleanとして正しく解釈しbit

あなたはパーシャルとして以下のような何かを試すことができます..

public partial class MyItem
{
    public bool FlagBool
    {
        get { return Flag == 1; }
        set { Flag = value ? 1 : 0; }
    }
}


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ