我是 C#、SQL 和 ASP.NET MVC 世界的新手。我必须写入以下 SQL 表(不能使用 SQL 必须使用 C# 和 MVC):
读写
Group
-----------------
id -- identity
name -- varchar
GroupCompanies
----------------
groupId -- fk link to Group.id
companyId -- fk link to Company.id
GroupSoftware
---------------
groupId -- fk link to Group.id
softwareId -- fk link to Software.id
companyId -- fk link to Company.id
有单独的只读表,其中数据来源以制作上述复合表(“GroupCompanies”和“GroupSoftware”):
只读
Companies
-----------------
id -- identity
name -- varchar
Software
-----------------
id -- identity
name -- varchar
在名为“创建”的页面上,我正在处理,我在视图中有三个字段:
- 名称//需要写入 Group.ID。然后必须与软件和公司配对。
- Companies //需要通过将选定的 Company.ID 与上面创建的名称的 ID 配对来写入 GroupCompanies。
- 软件//需要通过将选定的 Company.ID、上述创建的名称与 Software.ID 配对来写入 GroupSoftware。
我需要写一个新组的名称,将其发送到“组”表。这没什么大不了的。我可以成功地完成这项工作。
其他两个字段(“公司”和“软件”)是下拉列表。我需要将“公司”值(它们是字符串格式的 ID,因此需要在发布时将它们转换为整数)与“软件”值(也作为字符串的 ID)和发布时新创建的组配对。
现在事情是这样的:如何在发布字段时将值字符串作为映射到正确对象的整数捕获,然后一次将它们写入三个表?由于“GroupSoftware”表依赖于“GroupCompanies”和“Groups”,而“GroupCompanies”依赖于“Groups”,所以我需要按此顺序执行命令。此外,我不知道如何使用 C# 和 ASP.NET MVC 在需要来自其他表的 ID 的表上进行编写。
如果有人可以提供帮助,将不胜感激!
PS:记住,我是新人,我是个白痴,所以请善待!:D
一些代码供参考:MVC VIEW
@{
ViewBag.Title = "Create a Group";
}
<h2>createGroup</h2>
<fieldset>
<legend>Group</legend>
@Html.Action("Create")
@Html.Action("softwareList")
@Html.Action("companyList")
<input type ="submit" value="Submit" />
</fieldset>
<div>
@Html.ActionLink("Back to List", "Index")
</div>
需要修改的MVC控制器
[HttpGet]
public ActionResult softwareList()
{
List<SelectListItem> listSelectListItem = new List<SelectListItem>();
foreach (Software software in db.Software)
{
SelectListItem selectListItem = new SelectListItem()
{
Text = software.SoftwareName,
Value = software.SoftwareID.ToString(), //The items in the list have a string value of SoftwareID.
};
listSelectListItem.Add(selectListItem);
}
softwareViewModel softwareviewmodel = new softwareViewModel(); //instantiates dummy container
softwareviewmodel.Applications = listSelectListItem; //the list represent the 'software' in the dummy. A value is a piece of Array.
return PartialView(softwareviewmodel);//shows the dummy container.
}
^这是软件下拉列表,“groupcompanies”是一样的,只是用“company”替换“software”。
MVC 模型类
public class softwareViewModel
{
public IEnumerable<SelectListItem> Software { get; set; }
public IEnumerable<string> Selectedsoftware { get; set; }
}