EF4 CTP5 - 没有对象引用映射外键?

时间:2011-03-05 22:42:36

标签: entity-framework-4 mapping foreign-keys code-first entity-framework-ctp5

我觉得这应该有一个简单的答案,但我找不到它。

我有2个POCO:

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public int CategoryId { get; set; }
}

请注意,POCO上没有对象引用。使用Code-First,如何使EF4 CTP5定义两个数据库表之间的关系?

(我知道这是一个不寻常的场景,但我正在探索什么是可能的,什么不是Code-First)

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。如下所示,用于设置关联的所有流畅API方法都需要将Navigation Property指定为其参数。

HasMany<TTargetEntity>(Expression<Func<TEntityType, ICollection<TTargetEntity>>> navigationPropertyExpression) 

HasOptional<TTargetEntity>(Expression<Func<TEntityType, TTargetEntity>> navigationPropertyExpression) 

HasRequired<TTargetEntity>(Expression<Func<TEntityType, TTargetEntity>> navigationPropertyExpression) 

答案 1 :(得分:0)

您是否有任何特殊原因想要使用对象引用?使用它们看起来非常优雅:

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public Category Category { get; set; }
}

您仍然可以通过您的产品product.Category.Id访问类别ID。