【发布时间】:2018-11-09 11:41:14
【问题描述】:
我正在尝试使用 Fluent API 在 Entity Framework Core 中建立一对多关系,但没有成功。
我有两个名为 Message 和 Source 的对象,它们被定义为
public class Message
{
public int ID { get; set; }
public int FromUserID { get; set; }
public int ToUserID { get; set; }
public int SourceID { get; set; }
public int Priority { get; set; }
public string Subject { get; set; }
public string MessageBody { get; set; }
public DateTime DateTimeCreated { get; set; }
public DateTime? DateTimeDelivered { get; set; }
public Source Source { get; set; }
}
public class Source
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<Message> Messages { get; set; }
}
一个消息与一个来源有关,一个来源与许多消息有关。
在我的上下文类中,我有以下内容
public DbSet<Message> Messages { get; set; }
public DbSet<Source> Sources { get; set; }
然后将关系定义为
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
modelBuilder.Entity<Message>()
.HasOne<Source>(m => m.Source)
.WithMany(s => s.Messages);
}
如果我用以下方法测试它
var get = context.Messages.Where(m => m.ID == 1).FirstOrDefault();
我的问题是我得到消息返回的数据 OK 但对于源我只得到空值。
我查看了有关此的不同教程和 SOF 问题,但我看不出哪里出错了。
希望有人能对此有所了解。
【问题讨论】:
标签: c# entity-framework-core ef-fluent-api