我有我认为是一个非常简单的数据模型,并且我正在与EF 4.1 CF一起苦苦挣扎。EF 4.1一对多关系
我的数据模型有两类:
public class Site {
public int id { get; set; }
public string name { get; set; }
public ICollection<Building> buildings { get; set; }
}
public class Building {
public int id { get; set; }
public int siteId { get; set; }
public string name { get; set; }
}
我的配置文件是这样的:
public class SiteConfiguration : EntityTypeConfiguration<Site> {
public SiteConfiguration() {
HasMany(c => c.buildings)
.WithRequired()
.HasForeignKey(c => c.siteId);
}
}
在我的控制器MVC我只是想从网站中删除建设。这里是我的控制器代码:
public ActionResult Delete(int id, int siteId) {
var site = repo.GetById(siteId);
var building = site.buildings.SingleOrDefault(c => c.id == id);
ou.buildings.Remove(site);
repo.Save();
}
我的错误消息:
操作失败:关系 不能被改变,因为一个或 多个外键的属性是 非空的。当更改为 的关系时,相关的 外键属性设置为空值 值。如果外键没有 支持空值,则必须定义新的 关系,必须将 外键属性指定为 另一个非空值,或必须删除不相关对象 。任何 的想法或建议将是 非常感谢。
您可以扩展您的代码示例以包含'repo'和'ou'的定义吗? – therealmitchconnors