没有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项目。
答案 0 :(得分:1)
不需要在您的实体中声明FK属性。如果删除它,EF将在您的数据库中为您创建它。
但是,假设Blog
不在内存中,这将要求您首先在数据库上执行查询以检索Blog
,以便您可以设置该属性。有时您可能没有内存中的对象,但您可以访问该对象的键值。使用外键属性,您只需使用键值而不依赖于在内存中具有该实例:
currentPost.BlogId=2;