Kami memiliki kolom UserId yang menyimpan orang yang terakhir mengubah tabel.

Terkadang, orang memodifikasi pelanggan, tabel alamat, melalui aplikasi C# .NET Core.

Ada UserId di aplikasi web, jelas tidak disimpan sebagai login SQL Server.

Contoh: JoeSmith (UserId = 8) adalah login di aplikasi C#, tetapi tidak di SQL Server.

Jika seseorang menjalankan transaksi yang mengubah 5 tabel secara bersamaan, apakah ada cara mudah untuk melakukan perubahan semua UserId di semua 5 tabel, secara otomatis? Tanpa susah payah menambahkan UserId di semua kueri Linq-EF, dan memodifikasi semua pembuat peta otomatis?

Mencari cara sederhana untuk melakukan ini,

Apakah mungkin untuk menetapkan UserId palsu melalui Entity Framework, dan memiliki nilai userId default untuk siapa pun yang menjalankan aplikasi?

Mencoba meneliti: https://docs.microsoft.com/en-us/sql/t-sql/functions/system-user-transact-sql?view=sql-server-ver15

0
user13384523 22 April 2020, 22:41

1 menjawab

Jawaban Terbaik

Di EF Core Shadow Properties memberikan solusi sederhana untuk masalah ini. Properti bayangan ada sebagai kolom dalam database, tetapi bukan properti kelas atau bidang pada tipe entitas .NET.

2
David Browne - Microsoft 23 April 2020, 12:52