سؤال

لدي دور كيانين وإذن مع الارتباط من واحد إلى متعدد وفقًا لذلك.

public class Role
{             
    public int Id { get; set; }

    public bool IsAdmin { get; set; }

    public virtual ICollection<Permission> Permissions { get; set; }
}

public class Permission
{
    public int Id { get; set; }

    public string Code { get; set; }

    public string GroupName { get; set; }

    public virtual Role Role { get; set; }    
}

وأنشأوا فئات رسم الخرائط لهم ورثوا منها EntityTypeConfiguration فصل.

عندما أقوم بتشغيل تطبيقي، أنشأت EF قاعدة بيانات لي وكان المفتاح الخارجي لهذه الكيانات أعلاه معرف_الدور.

كيف يمكنني تغيير الاتفاقية الحالية أو إضافة اتفاقية جديدة للتخلص من الشرطة السفلية في المفتاح الخارجي؟

لذلك أريد أن يكون معرف الدور كمفتاح خارجي لكياناتي.

لا أريد استخدام سمات التعليقات التوضيحية للبيانات ولا أريد إضافة خاصية إضافية إلى فئة الإذن (public int RoleId { get; set; }) لاستخدامه في رسم الخرائط مثل هذا:
HasRequired(x => x.Role).WithMany(y => y.Permissions).HasForeignKey(o => o.RoleId);

شكرًا،
أليكسي

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

المحلول

لا يدعم إطار عمل الكيان حاليًا الاتفاقيات العامة المخصصة ولكن يمكنك الكتابة فوق اسم المفتاح في واجهة برمجة تطبيقات Fluen:

modelBuilder.Entity<Permission>()
            .HasRequired(x => x.Role)
            .WithMany(y => y.Permissions)
            .Map(m => m.MapKey("RoleId"));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top