मैं वर्तमान में अपने डोमेन ऑब्जेक्ट्स के लिए एंटीटी फ्रेमवर्क 4.1 और उसके कोड के पहले दृष्टिकोण के साथ रिपॉजिटरीज को कार्यान्वित करने का प्रयास कर रहा हूं। अब मैं एक डोमेन इकाई "यात्रा" जो एक अद्वितीय पहचानकर्ता प्रकार में समझाया "VoyageNumber"ईएफ 4.1 कोड प्राथमिक कॉम्प्लेक्स टाइप प्राथमिक कुंजी
public class VoyageNumber
{
private readonly string number;
public VoyageNumber(string number)
{
Validate.NotNull(number, "VoyageNumber is required");
this.number = number;
}
public string Id
{
get { return number; }
}
अब मैं एक अपवाद प्राप्त है जब मैं अपने DbContext के विन्यास में ऐसा करते हैं:
modelBuilder.Entity<Voyage>().HasKey<VoyageNumber>(k => k.VoyageNumber);
संपत्ति 'VoyageNumber' नहीं किया जा इकाई 'Domain.Model.Voyages.Voyage' क्योंकि संपत्ति प्रकार किसी मान्य कुंजी प्रकार नहीं है पर एक प्रमुख संपत्ति के रूप में इस्तेमाल कर सकते हैं। केवल स्केलर प्रकार, स्ट्रिंग और बाइट [] प्रमुख प्रकार समर्थित हैं।
और यह भी मैं इस जब कोशिश:
modelBuilder.Entity<Voyage>().HasKey<string>(k => k.VoyageNumber.Id);
गुण अभिव्यक्ति 'k => k.VoyageNumber.Id' मान्य नहीं है। सी #: अभिव्यक्ति एक संपत्ति का प्रतिनिधित्व करना चाहिए 'टी => t.MyProperty'
मैं वास्तव में मेरे VoyageNumber कचरा और एक आदिम प्रकार से बदलने के लिए है?
क्या अपवाद संदेश जब आप इस का उपयोग करें:
भंडार मेंmodelBuilder.Entity() .HasKey (k = > के। VoyageNumber); –
tpeczek
अपवाद संदेशों के साथ प्रश्न को अद्यतन किया गया। – hoetz
अभी भी ईएफ 6.1.3 –