Ini karena cara EF4 bekerja dengan model-first.
Saat Anda pertama kali membuat model yang mengutamakan model, SSDL dalam status tidak ada. Anda dapat menyeret entitas, mengaitkannya, dan sebagainya, namun, jika Anda melihat SSDL pada file EDMX, Anda akan melihat bahwa tidak ada entitas yang memiliki tabel penyimpanan terkait di SSDL.
Itu berubah ketika Anda mengklik Generate Database From Model
item menu konteks. Bagian yang membingungkan adalah bahwa tindakan ini melakukan lebih dari sekadar menghasilkan skrip DDL. Bahkan, itu mengubah file EDMX untuk menyertakan informasi SSDL. Mulai saat ini, file EDMX akan memasuki keadaan di mana setiap entitas di desainer / CSDL harus memetakan ke entitas di SSDL. Jika tidak ada peta, itu akan memicu kesalahan waktu kompilasi:
Tidak ada pemetaan yang ditentukan untuk EntitySet / AssociationSet berikut - (EntityName)
Fakta menarik lainnya adalah bahwa ini bukan jenis kesalahan yang akan mencegah kompilasi. Ini memang akan menghasilkan pustaka kelas keluaran. Bukankah itu peringatan atau semacamnya?
Untuk mencegah kesalahan ini, Yang harus Anda lakukan setelah memasukkan entitas baru adalah melakukan Generate Database From Model
lagi. Itu akan memperbarui SSDL dan memperbaiki pemetaan.
EDIT
Jika Anda tidak menggunakan model-first dan Anda "memperbarui dari database", Anda juga akan mengalami kesalahan ini jika Anda menghapus tabel di Server DB. Ini karena Entity Framework tidak secara otomatis menghapus entitas untuk Anda. Hapus entitas secara manual dan kesalahan akan hilang.