2016-12-17 5 views

Antwort

1

Mit EntityFramework CodeFirst byte [] wird auf varbinary (max) automatisch Karte

public class AudioFile 
{ 
    //TODO: DB generated 
    [Key] 
    public int ID { get; set; } 
    //This will automatically map to varbinary(max) 
    public byte[] FileData { get;set; } 
    public string LocalFileName { get;set;} 
    public string MIMEType {get;set;} 
} 

Obwohl Sie eine allgemeine byte [] zu speichern, verwenden, können Sie mehr Verkapselung mit der Klasse für die Spezialisierung hinzuzufügen. Für das eigentliche FileData-Feld ist kein Audio-Datentyp erforderlich.

public partial class AudioFile 
{ 
    public void Play() 
    { 
     //TODO 
    } 
} 

Denken an nur SQL Server und der beste Datentyp

Varbinary (max) ist die beste Art zum Speichern von binären Daten für alle Dateitypen zu verwenden. Dies schließt die Berücksichtigung von FileStreaming aus und schließt auch das Speichern von Dateien getrennt von der Datenbank in einem Ordner aus.

Varbinary-Einschränkung - Wenn Sie viele dieser Audiostreams speichern und SQL Server Express verwenden, werden Sie bald Ihre 10-GB-Grenze erreichen. Sie können die Partitionierung mit mehreren Datenbanken fortsetzen, aber im Allgemeinen ist es eine schlechte Idee, Dateidaten in Datenbankfeldern zu speichern.

Wenn Sie nur eine Prototyp-Anwendung oder die ersten Versionen starten, behalten Sie den Bereich im Auge.

FileStream ist eine gute Option. Es dauert ein wenig, um auf SQL Server zu konfigurieren, wenn es das erste Mal ist.

Aber ich entscheide mich oft für meine eigenen Dateiordner. In einem Webanwendungskontext ist es viel einfacher, diesen Dateiordner direkt für statische Dateidownloads und CDN-Caching verfügbar zu machen (abhängig von der Empfindlichkeit der Informationen).

Fazit:

  • aus einfachen Feldern, ist die beste wählen varbinary (max)
  • varbinary (max) ist auch der schnellste gehend zu erhalten
  • Sie später konvertieren kann, wenn Es wird ein Problem, aber ich bin mir sicher, dass Sie etwas mehr als ein AudioFile Data Store erstellen, und zuerst mehr von den anderen wichtigen Features erstellen sollten.
Verwandte Themen