Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在数据库c中同时插入两个对象#_C#_Entity Framework - Fatal编程技术网

C# 在数据库c中同时插入两个对象#

C# 在数据库c中同时插入两个对象#,c#,entity-framework,C#,Entity Framework,我有一个数据库,有三个表:玩家、游戏和角色。这三个表之间的关系通过另一个名为PlayerGameRole的表显示,该表包含三个表的ID作为外键,也是PlayerGameRole表的主键。 目前,我正在尝试添加一个新的玩家,同时用相应的ID填充PlayerGameRole。但是,我能够执行API,但我的代码没有使用给定的信息填充表 public Player AddPlayer(Player player){ using (DBContext db = new DBContext())

我有一个数据库,有三个表:玩家、游戏和角色。这三个表之间的关系通过另一个名为PlayerGameRole的表显示,该表包含三个表的ID作为外键,也是PlayerGameRole表的主键。 目前,我正在尝试添加一个新的玩家,同时用相应的ID填充PlayerGameRole。但是,我能够执行API,但我的代码没有使用给定的信息填充表

public Player AddPlayer(Player player){
 using (DBContext db = new DBContext())
        {
            db.Configuration.ProxyCreationEnabled = false;
            Player p = new Player();
            p.Name = player.Name;
            p.Email = player.Email;            
            p.PlayerGameRole = player.PlayerGameRole;
            db.Player.Add(p);


            db.SaveChanges();

            return p;
        }
      }
这是我的PlayerModel:

public partial class Player{

    [DataMember]
    public int ID { get; set; }

    [DataMember]
    [Required]
    [StringLength(255)]
    public string Name { get; set; }

    [DataMember]
    [Required]
    [StringLength(75)]
    public string Email { get; set; }

    [DataMember]
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<PlayerGameRole> PlayerGameRole { get; set; }

}
公共部分类播放器{
[数据成员]
公共int ID{get;set;}
[数据成员]
[必需]
[StringLength(255)]
公共字符串名称{get;set;}
[数据成员]
[必需]
[第75段]
公共字符串电子邮件{get;set;}
[数据成员]
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2227:CollectionPropertiesShouldBreadOnly”)]
公共虚拟ICollection扮演者角色{get;set;}
}

我想问题就在这里

p.PlayerGameRole = player.PlayerGameRole
尝试显式创建集合并添加元素:

p.PlayerGameRole = new List<PlayerGameRole>();
foreach(var role in player.PlayerGameRole)
{
p.PlayerGameRole.Add(role);
}
p.PlayerGameRole=newlist();
foreach(player.playergameole中的变量角色)
{
p、 PlayerGameRole.Add(角色);
}

您在哪里使用Linq?“不填充”-任何异常或什么?没有异常。它只是没有将数据添加到PlayerGameRole表中。谢谢!:你救了我几个小时的时间,让我的头撞在桌子上