กรอบงานแอปพลิเคชัน: ASPNET Core 2.1
นี่คือชั้นเรียนของฉัน
public class Employee
{
[DataMember(Name = "key")]
[Key]
public Guid Key { get; set; }
[Required]
[DataMember(Name = "Name")]
public string Name { get; set; }
}
ฉันมีโค้ดด้านล่างซึ่งเปิดใช้งานการเพาะข้อมูลและการสร้างอัตโนมัติของคอลัมน์ Guid
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//Auto generation of Guid
modelBuilder.Entity<Employee>().Property(x => x.Key).HasDefaultValueSql("NEWID()");
//seeding of data
modelBuilder.Entity<Employee>().HasData(
new Employee{ Name = "Hamlet" },
new Employee{ Name = "King Lear" },
new Employee{ Name = "Othello" }
);
}
ฉันได้รับข้อผิดพลาดด้านล่างขณะรันคำสั่ง add-migration InitialCreate
ไม่สามารถเพิ่มเอนทิตีเริ่มต้นสำหรับเอนทิตีประเภท 'พนักงาน' ได้ เนื่องจากไม่มีค่าที่ให้ไว้สำหรับคุณสมบัติ 'คีย์' ที่จำเป็น
ฉันไม่ต้องการส่งค่าสำหรับ Key
ฉันต้องการให้สร้างอัตโนมัติในฐานข้อมูล SQL Server
ข้อกำหนดพื้นฐานของฉันคือ: ใส่ข้อมูลหลัก (อัปเดต) ทุกครั้งที่ฉันรัน update-database
ในคอนโซลตัวจัดการแพ็คเกจ
HasData
ไม่มีการโอเวอร์โหลดที่ยอมรับข้อกำหนดคีย์ที่ตรงกัน ดังที่AddOrUpdate
มี อาจเป็นคำขอคุณลักษณะ จนกว่าจะถึงตอนนั้น ตัวเลือกเดียวของคุณคือระบุค่าคีย์ อย่างไรก็ตาม โปรดทราบว่าคุณจะต้องใช้คีย์ที่ระบุเสมอ หากคุณต้องการเริ่มต้นข้อมูลที่อ้างอิงถึงEmployee
ด้วย - person Gert Arnold   schedule 24.11.2018