私はC#およびエンティティフレームワークを初めて使用しています。ウェブAPIを使用してプロジェクトを進めています。私はまた、私のデータをテストし、データベースに挿入する前にそれらを検証するために郵便配達員を使います。 私のコントローラのCreateは、以下に示すjsonを受け入れます。 JSONオブジェクトは私の人物モデルにマップされ、jsonのAssets要素は資産モデルからのコレクションです。私がしたいのは、JSON内のすべてのアセット名を取得し、それらがアセットテーブルに存在するかどうかをチェックすることです。存在する場合は、アセットのIDを取得し、すべてを「PersonAsset」テーブルに保存します。 「PersonAssetは」「PERSONID」&「AssetId」Entity Frameworkを使用して多対多の関係でデータを保存する
が含まれている私は、この問題を解決しようとして24時間以上を費やしていることを NOTE、私は助けを必要としてください私は値を受け入れるにはどうすればよい
{
"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"
}
],
は私PersonModelコードです。クラスが長すぎるので、私はいくつかのプロパティを削除したことに注意してください 名前空間nsr.Domain.Model { パブリッククラスPersonModel { 公共のint Idを{取得します。セット; } パブリック文字列FirstName {get;セット; } 公開ストリングMiddleName {get;セット; public int MaritalStatusId {get;セット; } パブリックbool IsActive {get;セット; } パブリック仮想ICollectionアセット{get;セット; } パブリック仮想ICollection SocialGroups {get;セット; } } –
codeDev
@codeDev上記のサンプルは役に立ちましたか? –