سؤال

لدي هذه الكيانات (هذا مجرد تجريد قمت بإنشائه لهذا المنصب):

  • لغة
  • يصرف
  • وصف

هذه هي المراجع بينها:

  • يصرف * - 1 لغة
  • وصف * - 1 لغة
  • يصرف 1 - 1 وصف

إذا جلبت مثل هذا:

var myFetch = from c in context.Districts
              where c.Id = 10
              select new { DistrictId = c.Id, Lang = c.Language };

وبعد ذلك، أحاول تعيينه وصف مثله:

Description desc = Description.CreateDescription(0, "My description");
desc.DistrictReference.EntityKey = new EntityKey("MyEntities.Descriptions", "DistrictId", myFetch.DistrictId);
desc.Language = myFetch.Lang; //throws error

الخطأ الذي ألقيته هو:

system.invalidoperationException: لا يمكن تعريف العلاقة لأن اسم اسم Entityset 'Limitation.Descriptions' غير صالح بالنسبة للدور "الحي" في جمعية مجموعة الأسماء "Limentites.district_Description".

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

لو myFetch كان ليكون مثالين للفئة District يمكنك القيام بذلك برمجيا:

desc.DistrictReference.EntityKey = new EntityKey(  
  String.Format(  
    "{0}.{1}",   
    myFetch.EntityKey.EntityContainerName,   
    myFetch.EntityKey.EntitySetName),   
  "DistrictId", 
  myFetch.DistrictId);  

نصائح أخرى

فقط ما تقول الرسالة: حددت اسم مجموعة الكيان الخاطئ.

  1. افتح edmx الخاص بك.
  2. افتح نافذة متصفح النموذج.
  3. ابحث عن كيان المقاطعة في متصفح النموذج
  4. انقر بزر الماوس الأيمن فوقها، اختر "خصائص"
  5. لاحظ اسم مجموعة الكيان الصحيح
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top