Vedo che è possibile utilizzare una query per trovare una lunghezza di un campo varbinary in una query.
Ma puoi mappare una proprietà FileSize per ottenere le dimensioni di un varbinary nell'API Fluent senza dover scrivere query?
Voglio essere in grado di memorizzare alcune informazioni sui file in SQL Server. Questo dato è un nome di file, contenuto del file. Questo ha una definizione nel modello dati come segue:
public class FileData
{
public int Id { get; set; }
public string Filename { get; set; }
public byte[] Contents { get; set; }
}
In genere, desidero conoscere la dimensione dei contenuti quando richiamo FileData. Se ho aggiunto una proprietà int FileSize a FileData, puoi mappare questa proprietà per calcolare la dimensione?
Posso configurarlo in SQL:
E quando inserisco nel tavolo mi dà la dimensione corretta.
Tuttavia, se si genera il mio modello dati / DbContext utilizzando VS2015 -> Aggiungi nuovo elemento ... -> Modello dati entità Entità ADO.NET, il mio PODO FileData ha solo un'annotazione con DatabaseGenerated (DatabaseGeneratedOption.Computed) sulla proprietà FileSize. Nient'altro riflette la formula len (Contenuti) che ho aggiunto.
È possibile configurare questo tipo di colonna calcolata usando prima il codice EF6?
Non è possibile creare prima colonne calcolate nel codice del framework entità. Il modo in cui lo stai facendo è corretto, hai appena messo l'attributo DatabaseGenerated(DatabaseGeneratedOption.Computed)
sulla proprietà, Entity Framework
non proverà a creare la colonna per te e creerai la colonna manualmente. Una buona idea è rendere il set privato della proprietà, dato che non avrai mai bisogno di modificarlo manualmente:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public int? FileSize {get; private set;}