Entity framework 在DataObjects.Net中包含外键属性

Entity framework 在DataObjects.Net中包含外键属性,entity-framework,foreign-keys,dataobjects.net,Entity Framework,Foreign Keys,Dataobjects.net,我最近很担心实体框架的问题,我们可能需要找到一个替代品。根据ORMBattle的说法,最好的候选者是DataObjects.Net,我最初的调查结果非常有希望,除了结构中需要的一个功能: 考虑两个类:Order和Customer,在类“Order”中我有一个“Customer”导航属性(在Customer类中可能还有一个“Orders”导航属性)。我还需要一个属性CustomerID的类顺序。 这在低EF4中是完全可能的 如何实现此目标?您可以使用执行此任务的特殊getter添加非持久性属性:

我最近很担心实体框架的问题,我们可能需要找到一个替代品。根据ORMBattle的说法,最好的候选者是DataObjects.Net,我最初的调查结果非常有希望,除了结构中需要的一个功能:

考虑两个类:Order和Customer,在类“Order”中我有一个“Customer”导航属性(在Customer类中可能还有一个“Orders”导航属性)。我还需要一个属性CustomerID的类顺序。 这在低EF4中是完全可能的


如何实现此目标?

您可以使用执行此任务的特殊getter添加非持久性属性:

public long CustomerId
{
  get
  {
    return GetReferenceKey(TypeInfo.Fields["Customer"]).Value.GetValue<long>(0);
  }
}
公共长客户ID
{
得到
{
返回GetReferenceKey(TypeInfo.Fields[“Customer”]).Value.GetValue(0);
}
}
可以以相同的方式添加setter

希望有帮助

附加说明

这是原始答案的副本,可在上找到。

但将FKs引入EF 4.0是解决一些独立关联问题的一种变通方法。在对象世界中根本不需要FK,我知道DataObjects不支持FK属性。“在对象世界中根本不需要FK”这句话是基于对对象使用模式的某些假设。它不能(至少我不能)直接从OOP原则和最佳实践中推断出来。我有一个有趣的体系结构,非常模块化、快速和灵活,它高度依赖于将其他对象的标识符作为属性,以及对对象的实际引用。