【发布时间】:2016-10-04 12:15:39
【问题描述】:
我正在尝试将 SQLite 与新的 EF Core 一起使用,并且一直在关注 tutorial。在我也使用 SQLite 之前,我使用了一个额外的 DB 类,并引用了真实的类。例如下面Blog_DB 包含ID 到BlogImage(另一个类),然后我用来创建真正的Blog 类,将BlogImage 类加载到Blog.BlogImage。
public class Blog_DB
{
public int BlogId { get; set; }
public string Url { get; set; }
public int BlogImageID { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public BlogImage BlogImage { get; set; }
}
public class BlogImage
{
public int BlogImageId { get; set; }
public byte[] Image { get; set; }
public string Caption { get; set; }
}
但是现在我听说了 EF Core,它是 one-to-one 和 one-to-many 关系,通过以下方式完成:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public BlogImage BlogImage { get; set; }
}
public class BlogImage
{
public int BlogImageId { get; set; }
public byte[] Image { get; set; }
public string Caption { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
但我不明白,这是如何工作的(或者我没有正确理解/阅读文档),因为当我加载 Blogs 时,条目 BlogImage 是空的。
using (var db = new BloggingContext())
{
var m = db.Blogs.FirstOrDefault(); // the first entry
m.BlogImage = new BlogImage { Caption = "My Caption" }; // does not work
db.BlogImage.Add(new BlogImage { Blog = m, BlogId = m.BlogId, Caption = "My Caption" }); // doesn't work either
db.SaveChanges();
}
【问题讨论】:
标签: c# database entity-framework sqlite uwp