开发者

EF4 CTP5 - Map foreign key without object references?

开发者 https://www.devze.com 2023-02-15 14:10 出处:网络
I feel like this should have a simple answer, but I can\'t开发者_开发问答 find it. I have 2 POCOs:

I feel like this should have a simple answer, but I can't开发者_开发问答 find it.

I have 2 POCOs:

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; }
}

Notice that there are no object references on either POCO. With Code-First, how do I make EF4 CTP5 define a relationship between the two database tables?

(I know this is an unusual scenario, but I am exploring what's possible and what's not with Code-First)


No, this is not possible. As you can see below, all of the fluent API methods for setting up associations require specifying the Navigation Property as their parameter.

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

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

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


Is there any particular reason you don't want to use object references? It looks very elegant to use them:

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; }
}

And you can still access the Category Id via your product as product.Category.Id.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号