使用Entity Framework将数据保存为多对多关系

时间:2017-08-02 18:23:03

标签: c# frameworks entity

请我是C#和实体框架的新手,我正在使用web api开展项目。我还使用postman来测试我的数据并在插入数据库之前验证它们。 我的控制器Create将接受如下所示的json。 JSON对象映射到我的人员模型,json的Assets元素是资产模型的集合。我想要做的是检索json中的所有资产名称,并检查它们是否存在于资产表中。如果它们存在,获取资产的ID并将它们全部保存到" PersonAsset"表。 注意" PersonAsset"包含" PersonID" &安培; "由assetid"

我花了超过24小时试图解决这个问题,我需要帮助

    {
  "Id": 0,
  "FirstName": "stringFine",
  "MiddleName": "test-Sesan",
  "LastName": "stringOkay",
  "Gender": "Male",
  "DateOfBirth": "10-10-2017",
  "BirthCertificate": 0,
  "Asset": 0,
  "WorkTypeId": 2,
  "DwellingId": 2,
  "HouseholdRoleId": 2,
  "HealthFacility": 1,
  "Relationship": "string",
  "Education": 0,
  "MaritalStatusId": 2,
  "MobileNumber": "080099813501",
  "SettlementTypeId": 2,
  "CommunityId": 3,
  "SocialGroup": 0,
  "Address": "string",
  "IsInSchool": 0,
  "ReferenceNumber": "100/NSIO/NSR/345660",
  "DateInterviewed": "10-10-2017",
  "IsActive": true,
  "Assets": [
    {
      "Name": "Testing"
    }
  ],
  "SocialGroups": [
    {
      "Name": "string"
    }
  ]
}

   [ResponseType(typeof(PersonModel))]
    [ModelValidator]
    [HttpPost]
    public IHttpActionResult Create(PersonModel model)
    {

     try
        {
var person = Factory.Persons.Create(model);
 Service.Persons.Insert(person);
person = Service.Persons.Get(person.Id);
   var dto = Factory.Persons.Create(person);
  return CreatedAtRoute("DefaultApi", new { id = dto.Id },dto);
}
catch(dbexception){}

我如何接受以下JSON中的值并在我的控制器端点中使用它

"Assets": [
    {
      "Name": "Testing"
    }
 ],

1 个答案:

答案 0 :(得分:0)

您的PersonModel是什么样的?看看下面的代码是否有帮助。

创建资产模型

public class Asset
{
    public string Name { get; set; }
}

然后在PersonModel

public class PersonModel
{

    public List<Asset> Assets { get; set; }

}