Pertanyaan Kerangka Entitas: Nama kolom 'OrganizationStructure_ID' tidak valid


Saya mendapatkan: ERROR: Nama kolom 'OrganizationStructure_ID' tidak valid.

    public OrganizationStructure()
    {
        ChildrenItems = new HashSet<OrganizationStructure>();
        InputDate = DateTime.Now;
    }

    public int ID { get; set; }
    public string Name { get; set; }

    public virtual int? ParentID { get; set; }
    public int OrganizationID { get; set; }
    public int OrganizationTypeID { get; set; }
    public int OrganizationActivityID { get; set; }
    public int OrganizationLocationID { get; set; }

    public string AddRemark { get; set; }
    public int UserId { get; set; }
    public DateTime InputDate { get; set; }
    public int? RemAttr { get; set; }

    public virtual ICollection<OrganizationStructure> ChildrenItems { get; set; }

AKSI INDEX:

    return View(_organizationStructureRepository.GetAll().ToList() 
             .Where(t => t.ParentID == null));

32
2018-01-25 03:45


asal


Jawaban:


Itu karena Anda tidak memasangkan properti FK Anda dengan properti navigasi. Saya mengharapkan itu ParentID harus menunjuk ke orang tua OrganizationStructure dan ChildrenItems harus menunjuk ke anak-anak OranizationStructures.

Jika model Anda tidak berisi Parent navigasi properti ke induk OrganizationStructure Anda harus menggunakan API-fasih untuk memberi tahu EF itu ParentID adalah FK:

modelBuilder.Entity<OrganizationStructure>()
            .HasMany(o => o.ChildrenItems)
            .WithOptional()
            .HasForeignKey(c => c.ParentID);

39
2018-01-25 09:49



Apa yang saya ketahui adalah ketika Anda memiliki ICollection yang mereferensikan sebuah tabel dan tidak ada kolom yang dapat ditemukan, ia membuat satu untuk Anda mencoba membuat hubungan antara tabel. Ini secara khusus terjadi dengan ICollection dan telah mendorong saya "batty" mencoba untuk mencari tahu.


3
2017-12-18 08:43



Saya memiliki masalah serupa, menghapus masuknya ICOLection virtual publik yang tidak diinginkan, memecahkannya.


3
2018-03-04 16:48



Bisa juga jika Anda menyatakan bidang referensi dalam entitas anak sebagai bidang sederhana, tetapi bukan properti!

int ParentId  //will be ignored; 

int ParentId {get; set;} // it'ok (but could be ignored 
                         //if the parent entity name isn't 'Parent'); 

[ForeignKey("MyParentEntity")] 
int ParentId {get; set;} // is the best way (or use fluent-api)

1
2017-10-21 12:04



Jika ini adalah proyek uji coba, pastikan string koneksi diperbarui untuk proyek uji


0
2018-04-23 19:40