[英]EF Codefirst Convert Base Class to Derived Class
假設以下實體:
public class Kisi
{
[Key]
public int KisiID { get; set; }
public string Ad { get; set; }
public string Soyad { get; set; }
public virtual ICollection<Grup> Gruplar { get; set; }
public virtual ICollection<Kampanya> Kampanyalar { get; set; }
}
public class Musteri : Kisi
{
public int? Yas { get; set; }
public string Meslek { get; set; }
}
這兩個類在SQL SERVER中存儲一個表(TPH)。
我保存了一個Kisi,這可能與其他表有關。 我如何在保留相同ID的情況下將其轉換/轉換/“升級”為Musteri? 我無法重建。
我可以發出“手動” SQL INSERT,但這有點丑陋...
我如何在不失去KisiID的情況下進行處理?
如果不繞過EF的抽象,這是不可能的。 EF不允許您在運行時更改實體類型。 鑒別符列未通過EF公開。
您可以做的是使用SQL Update語句手動更新相應的行。
嘗試這個:
var kisi=context.Kisi.Find(Id);
context.Entry(kisi).State=EntityState.Deleted;
var musteri= new Musteri()
{
KisiID=kisi.KisiID,
Ad=kisi.Ad,
Soyad=kisi.Soyad,
Gruplar= kisi.Gruplar,
Kampanyalar=kisi.Kampanyalar,
Meslek="Adaskdm"
}
context.Entry(musteri).State=EntityState.Added;
context.SaveChanges();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.