在Entity Framework中將model屬性設置為boolean

entity-framework

我剛剛開始學習實體框架,並且對ORM沒有多少經驗。

在我的小應用程序中,我有一個表,這個sql server表有幾列,包括一個PrimaryKey(int)一個Name(字符串)和一個Flag(tinyint)。

當我將此表導入其中時,會自動將Flags的數據類型指定為字節。這很好,但Flag應該是一個布爾值,所以我

  1. 單擊“映射詳細信息”
  2. 選擇我的旗幟物業
  3. 將類型從字節更改為布爾值
  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;

並在數據庫中將Flag保存為1?

一般承認的答案

您可以將MyFlag的數據類型更改為數據庫中的bit


熱門答案

我認為對於tinyint你必須製作一個局部類,並使用一個適當讀/寫該字段的單獨字段。但是框架會正確地將bit字段解釋為boolean

您可以嘗試下面的部分作為部分..

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合法嗎? 是的,了解原因