我刚刚开始使用Microsoft的Entity Framework,将它用于MVC项目,因为MS似乎真的在推动它,而且我遇到了一些问题。在我的数据库中,有多个查找表通过外键绑定到单个表。在实体框架中,我尝试将这些组合成一个,以便在模型中为此数据提供简化的单一视图。但是,从设计者的角度来看,这似乎是不可能的。有什么明显的东西我不见了吗?有没有办法可以手动编辑edmx文件以生成这种模型?
答案 0 :(得分:3)
目前,实体框架中的外键和查找表是一个PAIN。
使用LINQ的EF使使您的数据变得非常容易,表面上看起来易于更新,但是使用查找表时,事情变得困难(现在......继续......)
我不确定如何将查找表“组合”到一个表中。如果每个表包含不同类型的“查找实体”,那么恕我直言,它们应该在您的EDM中单独表示。我猜你有令人头疼的事情,将记录的外键更新到查找表。那是因为它很头疼。
更改外键值:
MyDBEntities _db = new MyDBEntities();
//get a Person
MyDBEntities.Person person = (from p in _db.Persons
where p.Id = 1
select p).First();
// This sets the foreign key value in the Person table on the PersonType field
person.PersonTypeReference = new EntityKey("MyDBEntities.PersonType", "PersonTypeId", 3)
实体框架的next release version将有一个名为“FK Associations”的新概念。这将带回直接设置外键值的完整性,而不必创建和设置EntityKey。
HTH。