【发布时间】:2019-09-30 06:42:32
【问题描述】:
我正在尝试保存集合,其中包含所有集合的部分通用数据和每个集合的不同部分。我编写了硬编码方式来保存一个集合,但我不知道如何为多个集合做到这一点。所以这就是我所拥有的:
控制器:
[HttpPost]
public ActionResult MakeComplaint(CommonData model)
{
if (ModelState.IsValid)
{
model.CreateComplaint();
return RedirectToAction("Index");
}
}
型号:
public class CommonData
{
public string Data1 { get; set; }
public string Data2 { get; set; }
public List<DifferentData> Differents { get; set; }
SecondModel DataContainer()
{ //help needed here
SecondModel tmp = new SecondModel();
tmp.ID = Differents[0].ID; //how can I change it to save more collections?
tmp.Name = Differents[0].Name;
tmp.Data1 = Data1;
tmp.Data2 = Data2;
return tmp;
}
public int CreateComplaint()
{
var complaint = DataContainer();
db.AddComplaint(complaint);
db.Save();
}
}
public class DifferentData
{
public int ID { get; set; }
public string Name { get; set; }
}
我的DataContainer() 应该如何处理Differents[1] 等等?
编辑:
我的DataContainer() 现在是一个对象列表,所以解决了 1 个问题
List<SecondModel> DataContainer()
{
var listOfComplaints = new List<SecondModel>;
for(int i = 0; i<Differents.Count; i++){
SecondModel tmp = new SecondModel();
tmp.ID = Differents[i].ID;
tmp.Name = Differents[i].Name;
tmp.Data1 = Data1;
tmp.Data2 = Data2;
listOfComplaints.Add(tmp)
}
return listOfComplanints;
}
EDIT2: 工作解决方案:
public void AddComplaint(List<SecondModel> model){
db.SecondModels.InsertAllOnSubmit(model) //saving multiple objects
}
【问题讨论】:
-
你必须实例化你想要声明的每一个不同的对象,尽管它们有共同的值,以便它引用内存中的不同对象
-
什么样的数据库?关系型(如 SQL Server、MySQL、SQLite ...)还是 NoSQL(例如 MongoDB 等文档数据库)?如果一个或另一个,这可能必须以不同的方式回答。
-
@Fildor SQL Server,我的代码正在处理 1 个集合,我将值保存在数据库中,但我不知道如何修改
DataContainer()以处理更多集合
标签: c# sql asp.net-mvc database collections