Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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#_Entity Framework_Many To Many - Fatal编程技术网

C# 许多插入问题 目标

C# 许多插入问题 目标,c#,entity-framework,many-to-many,C#,Entity Framework,Many To Many,创建新市场并成功添加其经理 问题 实体验证失败-错误如下: MyApp.Models.Data.Users验证失败 电子邮件:电子邮件字段是必需的 PHash:需要PHash字段 PSalt:PSalt字段是必需的 情景 我正在我的应用程序上创建一个市场,我可以将其设置为经理。换句话说,我将一个已经存在的用户附加到一个市场。我正试图通过以下代码实现这一点: [HttpPost] public ActionResult Add(Market market) { [...] M

创建新市场并成功添加其经理

问题 实体验证失败-错误如下:

MyApp.Models.Data.Users验证失败

  • 电子邮件:电子邮件字段是必需的

  • PHash:需要PHash字段

  • PSalt:PSalt字段是必需的

情景 我正在我的应用程序上创建一个市场,我可以将其设置为经理。换句话说,我将一个已经存在的用户附加到一个市场。我正试图通过以下代码实现这一点:

[HttpPost]
public ActionResult Add(Market market)
{
    [...]

    Market marketBasics = new Market
    {
        Name = market.Name,
        Slug = market.Slug,
        Manager = market.ManagerId
    };

    [...]

    User user = new User
    {
        Id = market.ManagerId
    };

    db.Markets.Add(marketBasics); // Here I insert all the information
                                  // into "markets" table.

    marketBasics.User.Add(user);  // Here I (attempts to) insert into 
                                  // "users_in_markets"

    [...]
}
如您所见,我没有设置用户的
电子邮件
PHash
PSalt
——我没有注册新用户,而是将现有(用户)关联到(新)市场

所以我问:我如何解决这个问题?

技术细节
我使用的是Entity Framework 5+C#+MySQL。

用户不会被添加,因为您在将市场添加到数据库后将用户添加到市场。因此,用户在数据库中不存在于市场中

    marketBasics.User.Add(user);  //First add user to market

    db.Markets.Add(marketBasics); //Then add market to database
我希望这有帮助

通过对的回答和一些研究,我发现我需要将用户Id附加到
用户
实体

遵循最终代码:

[HttpPost]
public ActionResult Add(Market market)
{
    [...]

    Market marketBasics = new Market
    {
        Name = market.Name,
        Slug = market.Slug,
        Manager = market.ManagerId
    };

    [...]

    User user = new User
    {
        Id = market.ManagerId
    };

    db.User.Attach(user);
    marketBasics.User.Add(user);
    db.Markets.Add(marketBasics);

    [...]
}
要了解有关
附加方法的更多信息

祝大家成功