मैं उस वर्ग में एक डिफ़ॉल्ट मान सेट करने का प्रयास कर रहा हूं जिसका उपयोग SQLITE में किसी तालिका को परिभाषित करने के लिए किया जाता है:

using System;
using SQLite;

namespace Japanese {

public class Phrase
{

    [PrimaryKey, NotNull]
    public string PhraseId { get; set; }
    public int PhraseNum { get; set; }
    public int CategoryId { get; set; }
    [NotNull]
    public bool Selected { get; set; } 
    [NotNull, Default(value: 0)]
    public bool Viewed   { get; set; }
}
}

मुझे यह कहते हुए एक त्रुटि हो रही है:

/Phrase.cs(19,19): त्रुटि CS0246: प्रकार या नामस्थान नाम 'DefaultAttribute' नहीं मिला (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?) (CS0246)

क्या कोई जानता है कि मैं इस समस्या को कैसे हल कर सकता हूं?

0
Alan2 18 सितंबर 2018, 12:42

1 उत्तर

सबसे बढ़िया उत्तर

bool हमेशा असत्य को प्रारंभ करें, क्योंकि आप Viewed के लिए 0 सेट कर रहे हैं जिसका अर्थ SQLite में गलत है। हालाँकि यदि आपको आरंभ करने के लिए कुछ अन्य क्षेत्रों की आवश्यकता है, तो आप इसे संपत्ति के माध्यम से ही कर सकते हैं, फ़ील्ड डिफ़ॉल्ट मान तब तक नहीं बदलेगा जब तक कि कोई अन्य मान सेट न हो जाए।

private bool _sel = true;
[NotNull]
public bool Selected
{
    get { return _sel; }
    set { _sel = value; }
}

शायद आप NotNull के बजाय PhraseId AutoIncreament चाहते हैं क्योंकि PrimarKey हमेशा NotNull इसमें बाधा डालते हैं।

1
R15 18 सितंबर 2018, 14:26