vb net,mysql和实体框架6 sbyte类型的麻烦

时间:2017-08-03 00:12:50

标签: mysql vb.net entity-framework

我在visual studio 2015中定义了一个项目,我首先使用ADO NET代码连接mysql数据库(mysql连接器6.9.9),现在,拥有该模型,我&#39 ; m试图使用实体框架6.

我是从nuget' mysql实体框架6.9.9'安装的。在我的项目中,但是当我尝试连接模型时,会显示下一条消息:

  

SBYTE没有商店类型对应概念方类型   '为sbyte'原始类型' SBYTE'

.Net framework 4.5.2

任何建议??

谢谢!

1 个答案:

答案 0 :(得分:0)

SByte不是提供程序支持的数据类型(至少不受SQL Server,SQL Server CE,Microsoft Access,MySQL支持)。
如果您真的想要一个带有SByte的课程,最好的方法是使用[私人]支持并公开SByte属性。
这是私人支持领域的模型。

public class Info
{
    public int Id { get; set; }
    [MaxLength(50)]
    public string Description { get; set; }

    public sbyte SByte
    {
        get
        {
            return (sbyte) SByteBackingField;
        }
        set
        {
            SByteBackingField = value;
        }
    }


    private int SByteBackingField { get; set; }


    public class InfoMap : EntityTypeConfiguration<Info>
    {
        public InfoMap()
        {
            ToTable("Infoes69");
            Property(_ => _.SByteBackingField).HasColumnName("SByte");
            Ignore(_ => _.SByte);
        }
    }

}

在上下文中,您需要添加配置

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new Info.InfoMap());
}

问题是您无法在查询中使用SByte属性