我正在构建一个Web API控制器,它将接收可变数量的嵌套json数据
对我控制器的一些调用:
一个电话可以拨打3个账户费用
{
"studentid":123,
"studentname":"sam",
"totalfee1amnt":20,
"accounts":[
{ "feeid":"xx",
"fee1amnt":5
},
{ "feeid":"xx",
"fee1amnt":5
},
{ "feeid":"xx",
"fee1amnt":5
}
]
}
//另一个电话可以拨打4个账户费用
{
"studentid":123,
"studentname":"sam",
"totalfee1amnt":25,
"accounts":[
{ "feeid":"xx",
"fee1amnt":5
},
{ "feeid":"xx",
"fee1amnt":5
},
{ "feeid":"xx",
"fee1amnt":5
},
{ "feeid":"xx",
"fee1amnt":5
},
]
}
此控制器需要是动态的,并且在某些调用时需要更多数据。
我需要将这些数据写入数据库,或者使用实体框架,或者只需要正常插入数据库,但我更喜欢EF是Asycn,并且使用" totalfee1amnt"我需要用这个值调用其他SP。
我需要将此代码设为异步,以便同时发生多个调用。
我正在使用C#
实现这一点我如何有效地实施
我只是在文本文件上写这个来检查一切是否正常。
以下是我的内容,我做了一些修改
public class TestController : ApiController
{
[HttpPost]
[Route("api/CreditlifeCalc")]
public string TestJsonInput([FromBody] CreditlifeData input)
{
var jsonall = JsonConvert.SerializeObject(input.data );
var clietid = JsonConvert.SerializeObject(input.ClientID);
string path;
path = (AppDomain.CurrentDomain.BaseDirectory + "\\response.json");
using (FileStream fs = File.Create(path))
{
// writing data in string
string dataasstring = jsonall.ToString();
byte[] info = new UTF8Encoding(true).GetBytes(dataasstring);
fs.Write(info, 0, info.Length);
// writing data in bytes already
byte[] data = new byte[] { 0x0 };
fs.Write(data, 0, data.Length);
}
return jsonall;
}
public class CreditlifeData
{
public List<Crreditlife> data { get; set; }
public string ClientID { get; set; }
}
public class Crreditlife
{
public int Creditlf_Id { get; set; }
public string Name { get; set; }
public string Amount { get; set; }
}
}
这在调用API时工作正常,我需要确保clietid用作插入Sql server的主标记,我需要使用EF async。