Entity framework 4 实体框架4.0,PoCo&;查找表的导航属性

Entity framework 4 实体框架4.0,PoCo&;查找表的导航属性,entity-framework-4,poco,Entity Framework 4,Poco,我有以下型号 DeltaDirectionType, int Id string Name Delta, int Id string Name DeltaDirectionType DeltaDirectionType Double Value Trade int Id DateTime BusinessDate IList<Delta> deltas 当我从Edmx文件的代码生成模型时,和(取消检查外键),因为我的模型没有这些属性。我的导航属性有问题。在nHiberna

我有以下型号

DeltaDirectionType,
int Id
string Name


Delta,
int Id 
string Name 
DeltaDirectionType DeltaDirectionType
Double Value

Trade
int Id
DateTime BusinessDate
IList<Delta> deltas
当我从Edmx文件的代码生成模型时,和(取消检查外键),因为我的模型没有这些属性。我的导航属性有问题。在nHibernate中类似的东西对于DeltaDirectionType和Delta是一个简单的一对多映射,对于DeltaDirectionType和Delta和Trades是一个多对多映射。然而,我如何首先让它认识到DeltaDirectionType是一个查找,然后让Icollection为我工作

我正在努力解决这个问题,实体框架并不能让您轻松。我尝试了通常的方法,删除EF为您设置的导航属性,但随后会出现一些映射片段错误、未映射属性等

请帮助或指向正确的方向

查找表是现实生活中的问题,不知道为什么使用EF实现起来如此困难

非常感谢您的帮助


谢谢你所说的查找是什么意思?除了Delta实体将直接映射DeltaDirectionType_名称之外,您是否还需要其他操作

在EF中,您将获得DeltaDirectionType的导航属性,您可以通过此导航属性访问该名称。如果您不喜欢它,您可以将新属性添加到生成的POCO的分部类中,并直接在增量实体中提供名称,如:

public string DeltaDirectionTypeName
{
  get
  {
    return DeltaDirectionType != null? DeltaDirectionType.Name : String.Empty;
  }
}

唯一的问题是不能在Linq To Entities查询中使用此属性。在查询中,您必须始终使用导航属性。

您必须在模型中创建外键或导航属性来导航关系


导航属性可以定义为单向,即从增量表到查找表。这样的单向导航会将适当的属性添加到delta的对象中,但不会添加到looup表中

根据您所说的,delta应该具有DeltaDirectionType属性,而DeltaDirectionType具有delta对象的集合。这就是你得到的吗?从你的描述我看不出来。为什么取消选中外键属性复选框?这些值可能会有帮助。。。
public string DeltaDirectionTypeName
{
  get
  {
    return DeltaDirectionType != null? DeltaDirectionType.Name : String.Empty;
  }
}