繁体   English   中英

如何使用EntityFramework代码先将tinyint映射到C#字节

[英]How to map tinyint to c# byte using entityframework code first migration

我正在尝试将tinyint列映射到c#中的byte属性,如何有效地实现这一点。 我想将值null,0和1存储到数据库列中。 请在下面找到我的代码。 任何人都可以帮助我以下方法是否正确?

public enum TriState : byte
{
    Null = 0,
    True = 1,
    False =2
}

[NotMapped]
public TriState AuthorisationStatus { get; set; }

[Column("AuthorisationStatus")]
public byte AuthorisationStatusByte {
    get
    {
        return Convert.ToByte(AuthorisationStatus.ToString());
    }
    private set
    {
        AuthorisationStatus = EnumExtensions.ParseEnum<TriState>(value);
    }
}

public static T ParseEnum<T>(byte value)
{
    return (T)Enum.Parse(typeof(T), value.ToString(), true);
}

谢谢

根本不需要通过字符串。 只需使用显式转换:

[Column("AuthorisationStatus")]
public byte AuthorisationStatusByte
{
    get { return (byte) AuthorisationStatus; }
    set { AuthorisationStatus = (TriState) value; }
}

(我假设column属性是正确的-我对此一无所知。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM