【发布时间】:2023-03-15 10:50:01
【问题描述】:
我是 Entity Framework 的新手,我只是无法弄清楚关系在代码优先方法中是如何工作的。
例如,考虑三个实体:Users、Pictures、Posts。
- 一个用户可以拥有多张图片。
- 一个帖子可以有多张图片。
从数据库的角度来看,它们是 3 个表 + 2 个联结表(UserPictures、PostPictures)。
到目前为止,我没有在数据库中创建外键关系:
[Table("Users")]
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
public virtual ICollection<Picture> Pictures { get; set; } = new List<Picture>();
}
[Table("Pictures")]
public class Picture
{
[Key]
public int Id { get; set; }
[Required]
public string BlobPath { get; set; }
}
[Table("Posts")]
public class Post
{
[Key]
public int Id { get; set; }
[Required]
public string Title{ get; set; }
public virtual ICollection<Picture> Pictures { get; set; } = new List<Picture>();
}
我怎样才能做到这一点?还是我应该简单地删除一般的Pictures 表并将路径放在联结表条目中?
【问题讨论】:
-
这确实创建了一个具有 FK 关系的数据模型。图片表中有两个 FK,一个给 User,一个给 Post。这是一个可行的模式。您不需要连接表。
标签: c# sql entity-framework entity-framework-core entity-framework-6