外键没有丑陋的blablaId

时间:2015-06-28 10:54:19

标签: entity-framework

没有blablaId可以做外键吗? 我的意思是下一个情况

public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Name { get; set; } 

    public virtual List<Post> Posts { get; set; } 
} 

public class Post 
{ 
    public int PostId { get; set; } 
    public string Title { get; set; } 
    public string Content { get; set; } 

    public int BlogId { get; set; } // Why should I have this ugly property? 
    public virtual Blog Blog { get; set; } 
} 

我的模特是核心项目。但我应该玩EF规则。这意味着核心项目依赖于DAL项目。

1 个答案:

答案 0 :(得分:1)

不需要在您的实体中声明FK属性。如果删除它,EF将在您的数据库中为您创建它。

但是,假设Blog不在内存中,这将要求您首先在数据库上执行查询以检索Blog,以便您可以设置该属性。有时您可能没有内存中的对象,但您可以访问该对象的键值。使用外键属性,您只需使用键值而不依赖于在内存中具有该实例:

currentPost.BlogId=2;