我觉得这应该有一个简单的答案,但我找不到它。
我有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)
答案 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。