我首先使用Entity Framework Code。
我的课程发布与用户有关联:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Post
{
public int Id { get; set; }
public string Text{ get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
上面的代码正确生成用户的主键( ID )和发布的外键( UserId ) >由于Code First Conventions。
但如果我不想在发布类中拥有导航属性(用户)该怎么办?删除
public virtual User User { get; set; }
导致发布自动生成外键不。
可以使用Fluent API完成吗?
答案 0 :(得分:3)
您可以从另一方建立关联:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Post> Posts { get; set; }
}
如果您不想要Posts
属性,答案是:否,您不能。原因是EF必须能够跟踪对象模型中的关联 ,以便在插入Post
个对象时插入正确的外键值。
此外,如果没有至少一个导航属性,您将无法在代码中关联Post
和User
。
<强>加成强>
我忘了提到,在代码优先工作时,EF会查看类模型中的关联,以便在数据库中创建外键。