在 Entity Framework Core 中添加实体图

Ben

我在 EF Core 1.1.0 中使用了代码优先方法在我的 SQL 数据库中创建了我的实体。

我的一些实体具有到其他实体的导航属性(一对一或一对多)。

问题是,当我尝试添加具有导航属性的实体时,根实体已成功添加,但相关实体却没有。

这是下面的代码:

public class PopcornContext : DbContext
{
    public PopcornContext(DbContextOptions<PopcornContext> options)
        : base(options)
    {
    }

    public virtual DbSet<Movie> MovieSet { get; set; }
}

public partial class Movie
{
    public Movie()
    {
        this.Genres = new HashSet<Genre>();
        this.Cast = new HashSet<Cast>();
    }

    public int Id { get; set; }
    public string Url { get; set; }
    public string ImdbCode { get; set; }
    public string Title { get; set; }
    public string TitleLong { get; set; }
    public string Slug { get; set; }
    public int Year { get; set; }

    public virtual ICollection<Genre> Genres { get; set; }
    public virtual ICollection<Cast> Cast { get; set; }
}

public class PopcornContextFactory : IDbContextFactory<PopcornContext>
{
    public PopcornContext Create(DbContextFactoryOptions options)
    {
        var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json");
        var configuration = builder.Build();

        var optionsBuilder = new DbContextOptionsBuilder<PopcornContext>();
        optionsBuilder.UseSqlServer(configuration["SQL:ConnectionString"]);

        return new PopcornContext(optionsBuilder.Options);
    }
}

当我插入电影时:

using (var context = new PopcornContextFactory().Create(new DbContextFactoryOptions()))
{
    var movie = new Database.Movie
    {
        ImdbCode = movieJson.ImdbCode,
        TitleLong = movieJson.TitleLong,
        Year = movieJson.Year,
        Cast = movieJson.Cast.Select(cast => new Database.Cast
        {
            ImdbCode = cast?.ImdbCode,
            SmallImage = cast?.SmallImage,
            CharacterName = cast?.CharacterName,
            Name = cast?.Name
        }).ToList(),
        Genres = movieJson.Genres.Select(genre => new Database.Genre
        {
            Name = genre
        }).ToList(),
        Slug = movieJson.Slug,
        Title = movieJson.Title,
        Url = movieJson.Url
    };

    await context.MovieSet.AddAsync(movie);
    await context.SaveChangesAsync();
}

电影连同它的所有字段都被添加到数据库中,但流派和演员表不存在(空值)。

我已经设置了我的代码优先方法:

Add-Migration Initial

Update-Database

我错过了什么?我很确定这段代码适用于 EF6。

Ben

我已经想通了。实际上,这是 EF Core 中 AddAsync 方法的一个已知错误。非异步 Add 方法按预期工作。

这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Entity Framework Core中创建迁移时,如何配置DbContext?

来自分类Dev

如何在Entity Framework Core中运行存储过程?

来自分类Dev

在Entity Framework Core中包括集合

来自分类Dev

INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

来自分类Dev

在Entity Framework Core中获取当前用户ID的正确方法

来自分类Dev

在Entity Framework Core和UWP中删除表

来自分类Dev

如何使用Entity Framework Core加载相关实体

来自分类Dev

在Entity Framework Core中启用原始SQL日志记录

来自分类Dev

LINQ在Entity Framework Core 3.1中按分组

来自分类Dev

如何在Entity Framework Core 3.0中播种?

来自分类Dev

在Entity Framework Core中查询值对象的额外联接

来自分类Dev

Entity Framework Core中的动态查询执行

来自分类Dev

那么,Entity Framework Core 3.1.4中是否包含缺少?

来自分类Dev

如何在Visual Studio 2019中使用Entity Framework Core将实体模型添加到.Net Core ClassLibrary?

来自分类Dev

在Entity Framework Core中模仿ADO.NET设计

来自分类Dev

无效的列名Entity Framework Core

来自分类Dev

违反Entity Framework Core中的PRIMARY KEY约束

来自分类Dev

INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

来自分类Dev

在Entity Framework Core中获取当前用户ID的正确方法

来自分类Dev

在Entity Framework Core和UWP中删除表

来自分类Dev

在Entity Framework Core中建模文件夹结构

来自分类Dev

Entity Framework Core 中没有嵌套结果

来自分类Dev

Entity Framework Core 中的 SqlGeometry

来自分类Dev

Array.Contains 中的 ToLower 在 Entity Framework Core

来自分类Dev

Entity Framework Core 2.0 - 添加迁移不起作用

来自分类Dev

将 DbContext.SaveChanges 异常记录到 Entity Framework/Entity Framework Core 中的数据库

来自分类Dev

Entity Framework Core 获取没有相关实体的实体

来自分类Dev

Entity Framework Core 2.1 中的 ReverseEngineeringGenerator

来自分类Dev

如何在Entity Framework Core中做count等聚合函数

Related 相关文章

  1. 1

    在Entity Framework Core中创建迁移时,如何配置DbContext?

  2. 2

    如何在Entity Framework Core中运行存储过程?

  3. 3

    在Entity Framework Core中包括集合

  4. 4

    INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

  5. 5

    在Entity Framework Core中获取当前用户ID的正确方法

  6. 6

    在Entity Framework Core和UWP中删除表

  7. 7

    如何使用Entity Framework Core加载相关实体

  8. 8

    在Entity Framework Core中启用原始SQL日志记录

  9. 9

    LINQ在Entity Framework Core 3.1中按分组

  10. 10

    如何在Entity Framework Core 3.0中播种?

  11. 11

    在Entity Framework Core中查询值对象的额外联接

  12. 12

    Entity Framework Core中的动态查询执行

  13. 13

    那么,Entity Framework Core 3.1.4中是否包含缺少?

  14. 14

    如何在Visual Studio 2019中使用Entity Framework Core将实体模型添加到.Net Core ClassLibrary?

  15. 15

    在Entity Framework Core中模仿ADO.NET设计

  16. 16

    无效的列名Entity Framework Core

  17. 17

    违反Entity Framework Core中的PRIMARY KEY约束

  18. 18

    INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

  19. 19

    在Entity Framework Core中获取当前用户ID的正确方法

  20. 20

    在Entity Framework Core和UWP中删除表

  21. 21

    在Entity Framework Core中建模文件夹结构

  22. 22

    Entity Framework Core 中没有嵌套结果

  23. 23

    Entity Framework Core 中的 SqlGeometry

  24. 24

    Array.Contains 中的 ToLower 在 Entity Framework Core

  25. 25

    Entity Framework Core 2.0 - 添加迁移不起作用

  26. 26

    将 DbContext.SaveChanges 异常记录到 Entity Framework/Entity Framework Core 中的数据库

  27. 27

    Entity Framework Core 获取没有相关实体的实体

  28. 28

    Entity Framework Core 2.1 中的 ReverseEngineeringGenerator

  29. 29

    如何在Entity Framework Core中做count等聚合函数

热门标签

归档