إطار كيان:رسم خرائط الجداول الموجودة بدون التكامل المرجعي

StackOverflow https://stackoverflow.com//questions/12714875

سؤال

في هذا السيناريو، لدي قاعدة بيانات موجودة بثلاثة نماذج:

Address, ، الذي يحتوي على "AddressId" و"ParentId" و"City" و"State" وما إلى ذلك

Person, ، الذي يحتوي على "PersonId" و"Name" وما إلى ذلك.

Company, ، الذي يحتوي على "معرف الشركة" و"الاسم" وما إلى ذلك.

لأن Address يمكن أن يحتوي على صفوف لنماذج أكثر من مجرد جدول واحد، ولا يوجد مفتاح خارجي؛ال Address سيحتوي العمود "ParentId" إما على "PersonId" أو "CompanyId".

لتوليد بلدي DbContext, لقد استخدمت Entity Framework Power Tools Beta 2.نظرًا لعدم وجود التكامل المرجعي، فإن الفئات التي تم إنشاؤها من أجلها Person و Company لا تحتوي على مجموعة من العناوين كما ينبغي.

كيف يمكنني تغيير هذه الفئات لإضافتها في خاصية "العناوين" هذه والتأكد من تعيينها لجدول العناوين بشكل صحيح؟

في الوقت الحالي أفعل شيئًا كهذا؛أفضل أن أحصل على خريطة السياق إن أمكن:

public IEnumerable<Address> Addresses
{
   get 
   {
       IEnumerable<Address> addresses = null;
       using(MyDb db = new MyDb())
       {
            addresses = db.Addresses.Where(a => a.ParentId == this.PersonId)
       }

       return addresses;
   }
}

شكرًا!

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

المحلول

إذا أمكن، فيجب عليك إضافة معرف فريد إلى جدول العناوين ثم تخزين هذا المعرف مع الكيان الذي ينتمي إليه، سواء كان شخصًا أو شركة أو بائعًا وما إلى ذلك.

إذا لم تتمكن من ذلك بسبب سيناريو العناوين المتعددة، فيمكنك إنشاء جدول AddressXRef جديد يخزن المعرفات الفريدة العمومية (GUID) للكيانات (البائع، الشخص، الشركة، إلخ)، والمعرف الفريد العمومي (GUID) للعنوان؛لذلك يمكن أن يكون لكل كيان عناوين متعددة وستكون EF سعيدة جدًا بهذا الإعداد حيث ستكون هناك مفاتيح في كل مكان.

(أريد أيضًا مؤشرًا لنوع العنوان في جدول Xref حتى أعرف نوع العنوان، البريد، الشحن، وما إلى ذلك)

نصائح أخرى

إنشاء فصول جزئية لكليهما Company و Person التي تحتوي على تلك الخاصية التي قمت بإنشائها فيها.

public partial class Company
{
   public IEnumerable<Address> Addresses { ... }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top