How to map an image attribute by Fluent API?

7

I would like to know how to map an attribute of type image of SqlServer to the Fluent API.

In my database I have the following table:

CREATE TABLE [dbo].[ProdutoFotoERP](        
    [ProdutoFotoID] [int] NOT NULL,
    [ProdutoID] [int] NOT NULL,
    [Foto] [image] NULL,
 CONSTRAINT [PK_ProdutosFotoERP] PRIMARY KEY CLUSTERED 
(
    [ProdutoFotoID] ASC
)) 

And I created my entity as follows:

public class ProdutoFotoERP
{
    public int ProdutoFotoID { get; set; }
    public int ProdutoID { get; set; }
    public byte[] Foto { get; set; }

    public virtual ProdutoERP ProdutoERP { get; set; }
}

At first my configuration class looks like this:

public class ProdutoFotoERPConfiguration : EntityTypeConfiguration<ProdutoFotoERP>
{
    public ProdutoFotoERPConfiguration()
    {
        ToTable("ProdutoFotoERP");

        HasKey(c => c.ProdutoFotoID);
        Property(c => c.ProdutoFotoID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
    }
}
    
asked by anonymous 11.10.2016 / 18:54

1 answer

4

The only thing you need to do is to use the HasColumnType method.

Note that the types text , ntext , and image are obsolete and will be removed in the next releases of SQL Server .

public class ProdutoFotoERPConfiguration : EntityTypeConfiguration<ProdutoFotoERP>
{
    public ProdutoFotoERPConfiguration()
    {
        ToTable("ProdutoFotoERP");

        HasKey(c => c.ProdutoFotoID);
        Property(c => c.ProdutoFotoID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        Property(p => p.Foto).HasColumnName("Foto").HasColumnType("image");
    }
}
    
11.10.2016 / 19:09