我已經創建了用於獲取外鍵屬性的實體的部分類。更新實體框架中的外鍵
public partial class Artikel
{
public int WarengruppenID
{
get
{
if (WarengruppeReference.EntityKey == null) return 0;
return (int)WarengruppeReference.EntityKey.EntityKeyValues[0].Value;
}
set
{
WarengruppeReference.EntityKey =
new EntityKey("ConsumerProtectionEntities.Warengruppe", "WarengruppenID", value);
}
}
}
現在我改變外鍵(屬性),但沒有任何反應?!
我需要做些什麼來更新實體的外鍵?
我使用EF 3.5 SP1在ASP.NET MVC 2
EDIT
ID = ArtikelID updatedArtikel = ARTIKEL性質 ArtikelWarengruppen =選定的DropDownList值
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Artikel updatedArtikel, string ArtikelWarengruppen)
{
try
{
int artikelWarengruppenID = int.Parse(ArtikelWarengruppen);
var originalArtikel = (from art in _db.Artikel.Include(typeof(Warengruppe).Name)
where art.ArtikelID == id
select art).FirstOrDefault();
_db.Attach(originalArtikel);
updatedArtikel.ArtikelID = id;
// Update FK
updatedArtikel.WarengruppenID = artikelWarengruppenID;
_db.ApplyPropertyChanges(typeof(Artikel).Name, updatedArtikel);
_db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
你能否澄清一下,「現在我改變外鍵(屬性),但沒有任何反應?」 – 2010-01-19 19:10:54
...這裏是... – Rookian 2010-01-19 19:25:08
如果你改變'WarengruppenID = ...'和'ApplyPropertyChanges'的順序會發生什麼? – 2010-01-19 20:30:44