我已经创建了用于获取外键属性的实体的部分类。更新实体框架中的外键
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