編集:googlingから私はちょうどEF7が遅延ロードをサポートしていないことを知ったので、どうすればこれを達成できますか?Entity Frameworkコアで外部オブジェクトが見つかりませんか?
私は、次があります。
[Table("MediaSubmission")]
public class MediaSubmission
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public virtual MediaItem Item { get; set; }
}
[Table("MediaItem")]
public class MediaItem
{
public int Id { get; set; }
[Required]
[DataType(DataType.Url)]
public string MediaContents { get; set; }
}
私は次のようにデータベースに追加するMediaSubmission
とMediaItem
を作成します。
var item = new MediaItem() { MediaContents = mediaSubmission.URL };
_context.Add(item);
var submission = new MediaSubmission() { Item = item, Title = mediaSubmission.Title };
_context.Add(submission);
await _context.SaveChangesAsync();
return true;
、ItemId
がどのMediaItem
表にあります主キーIDはmediaSubmission
です。
しかし、MediaSubmissions
を反復処理すると、Itemに対してnull参照例外が発生します。
私はオーバーライドしていませんOnModelCreating
。
何が起こっているのですか?
編集:ちょうどこれを追加するにはApplicationbContext
です:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<MediaSubmission> ItemSubmissions { get; set; }
public DbSet<MediaItem> Items { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
私はそれにItemSubmissions
とItems
を追加しました。
遅延読み込みはサポートされていません。関連データの読み込み方法については、https://docs.microsoft.com/en-us/ef/core/querying/related-dataを参照してください。 – Smit