Tabel server Sql:
SomeId PK varchar(50) not null
OtherId PK int not null
Bagaimana saya harus memetakan ini dalam kode EF 6 terlebih dahulu?
public class MyTable
{
[Key]
public string SomeId { get; set; }
[Key]
public int OtherId { get; set; }
}
Saya telah melihat beberapa contoh di mana Anda harus mengatur urutan untuk setiap kolom, apakah itu wajib?
Apakah ada dokumentasi resmi tentang ini di suatu tempat?
c#
sql-server
entity-framework
entity-framework-6
loyalflow
sumber
sumber
SomeId
astring
atau anint
?Jawaban:
Anda pasti perlu memasukkan urutan kolom, jika tidak, bagaimana SQL Server seharusnya tahu mana yang lebih dulu? Inilah yang perlu Anda lakukan dalam kode Anda:
Anda juga bisa melihat pertanyaan SO ini . Jika Anda menginginkan dokumentasi resmi, saya sarankan untuk melihat situs web resmi EF . Semoga ini membantu.
EDIT: Saya baru saja menemukan entri blog dari Julie Lerman dengan tautan ke semua jenis kebaikan EF 6. Anda dapat menemukan apa pun yang Anda butuhkan di sini .
sumber
otherwise how is SQL Server supposed to know which one goes first?
- mengapa tidak dengan cara yang sama ia mengetahui urutan untuk setiap kolom lainnya?Untuk Memetakan kunci utama komposit menggunakan kerangka kerja entitas kita dapat menggunakan dua pendekatan.
1) Dengan Mengganti Metode OnModelCreating ()
Misalnya: Saya memiliki kelas model bernama VehicleFeature seperti yang ditunjukkan di bawah ini.
Kode dalam DBContext saya akan seperti,
2) Dengan Anotasi Data.
Silakan lihat tautan di bawah ini untuk informasi lebih lanjut.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) Bagaimana cara menambahkan kunci unik komposit menggunakan EF 6 Fluent Api?
sumber
Melalui Konfigurasi, Anda dapat melakukan ini:
lalu di konfigurasi konteks
sumber
Saya pikir saya akan menambahkan pertanyaan ini karena ini adalah hasil pencarian google teratas.
Seperti yang telah dicatat di komentar, di EF Core tidak ada dukungan untuk menggunakan anotasi (atribut Key) dan harus dilakukan dengan lancar.
Saat saya sedang mengerjakan migrasi besar dari EF6 ke EF Core, ini tidak menyenangkan dan saya mencoba meretasnya dengan menggunakan Reflection untuk mencari atribut Key dan kemudian menerapkannya selama OnModelCreating
Saya belum sepenuhnya menguji ini dalam semua situasi, tetapi berfungsi dalam tes dasar saya. Semoga ini bisa membantu seseorang
sumber