2014-09-08 10 views
11

Ich weiß, es ist eine dumme Frage, aber ich konnte nirgends die Antwort finden. Wie setze ich einen Standardwert für eine Spalte in sqlite.net Modell? Hier ist meine Modellklasse:Wie setze ich den Standardwert für Sqlite.net ohne sqlite row statement/conn.execute()

public class ItemTaxes 
{ 
    [PrimaryKey] 
    public string Sku { get; set;} 
    public bool IsTaxable { get; set;}// How to set IsTaxable's default value to true? 
    public decimal PriceTaxExclusive { get; set;} 
} 

I Standardwert Not Null Spalte IsTaxable zu wahr setzen wollen sie zu, wie soll ich das erreichen? Btw Ich möchte keine rohen SQL-Anweisung verwenden, d. H. conn.execute();

Vielen Dank.

+1

was tun Sie die Standardwerte gesetzt werden soll .. Sie eine Klasse oder Methode erstellen können, die von den Werten festgelegt würden ItemTaxes Felder zu allem, was Sie wollen mit etwas wie diese 'PropertyInfo [] properties = clsObject.GetType(). GetProperties();' und dann eine foreach-Schleife, so zum Beispiel, wenn die Werte standardmäßig auf null setzen Sie sie auf string.Empty zum Beispiel die folgende – MethodMan

+1

public static void ConvertNullToStringEmpty (diese T clsObject), wobei T: Klasse { PropertyInfo [] Eigenschaften = clsObject.Ge tType(). GetProperties(); // typeof (T) .GetProperties(); foreach (var info in Immobilien) { // wenn ein String und null, auf String.Empty if (info.PropertyType == typeof (string) && info.GetValue (clsObject, null) == null) { info.SetValue (clsObject, String.Empty, null); } } } – MethodMan

+0

Ich glaube nicht, dass es ein Attribut dafür gibt. Warum setzen Sie den Wert nicht im Konstruktor? – Postlagerkarte

Antwort

10

Ein wenig spät, aber für diejenigen, die hier bekam nach einer Antwort suchen:

public class ItemTaxes 
{ 
    [NotNull, Default(value: true)] 
    public bool IsTaxable { get; set; } 
} 
+5

Ich bin mit PCL Blanck App (Xamarin.Forms Portable), kann ich nicht schreiben [Standard (Wert: true)], weil es nicht in dieser Lösung ist. –

+0

Welche Version SQLite.Net hat dieses Attribut? – Geograph

+0

@Geograph Seit [Version 3.0.1] (https: // auf [oysteinkrog/SQLite.Net-PCL] (https://www.nuget.org/packages/SQLite.Net-PCL/3.1.1)) github.com/oysteinkrog/SQLite.Net-PCL/commit/15f120cce60a2e1e5fce806f7e752fb1638a430a). –