C# 如何保存实体框架数据库多对多关系中选择框中的数据

C# 如何保存实体框架数据库多对多关系中选择框中的数据,c#,entity-framework,many-to-many,dbcontext,C#,Entity Framework,Many To Many,Dbcontext,如何保存实体框架数据库多对多关系中选择框中的数据 有两类,一类是武器,另一类是使用者 公共类武器{}公共类用户{} public class User { public int ID { get; set; } public string Name { get; set; } public string Type { get; set; } }

如何保存实体框架数据库多对多关系中选择框中的数据

有两类,一类是武器,另一类是使用者

公共类武器{}公共类用户{}

 public class User
        {              
            public int ID { get; set; }
            public string Name { get; set; }
            public string Type { get; set; }      
            }



 public class Wepon
{   public int ID { get; set; }
    public string Wepon_Name { get; set; }
    public int Power { get; set; }
}

使用FormCollection和Model用户类时,应具有多对多关系

武器等级

public class User
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public string Type { get; set; }
            **public List<Wepon> WeposInList { get; set; }**

            }



 public class Wepon
    {
        public int ID { get; set; }
        public string Wepon_Name { get; set; }
        public int Power { get; set; }
        public List<User> UsersHaveWeponsList { get; set; }// User the List for M to M
}
还有Html代码

@模型enumVarAction.Models.User

@{

}

创建Html页面

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>User</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Type, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Type, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Type, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.WeposInList, htmlAttributes: new { @class = "control-label col-md-2" })
            <select  id="ShipFromCountries" multiple="multiple" name="ShipFromCountries">
                <div class="col-md-10">

                    @foreach (var VARIABLE in list)
                {
                        <option value="@VARIABLE.Wepon_Name">@VARIABLE.Wepon_Name</option>
                    }
                </div>
            </select>
        </div>






        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
使用者

@Html.ValidationSummary(true,“,new{@class=“text danger”}) @LabelFor(model=>model.Name,htmlAttributes:new{@class=“controllabel col-md-2”}) @EditorFor(model=>model.Name,new{htmlAttributes=new{@class=“form control”}) @Html.ValidationMessageFor(model=>model.Name,“,new{@class=“text danger”}) @LabelFor(model=>model.Type,htmlAttributes:new{@class=“controllabel col-md-2”}) @EditorFor(model=>model.Type,new{htmlAttributes=new{@class=“form control”}) @Html.ValidationMessageFor(model=>model.Type,“,new{@class=“text danger”}) @LabelFor(model=>model.WeposInList,htmlAttributes:new{@class=“controllabel col-md-2”}) @foreach(列表中的var变量) { @VARIABLE.Wepon_名称 } } @ActionLink(“返回列表”、“索引”) @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) }

**

  • 在控制器上调试
**

**

  • 数据是数据库
**


Wepon?:)你不是指武器吗?lol yp拼写错误:D
  [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create([Bind(Include = "ID,Name,Type")] User user, FormCollection formData)
            {

                if (ModelState.IsValid)
                {
                    var ss = formData["ShipFromCountries"].ToString();
 user.WeposInList = db.Wepons.Where(c => c.Wepon_Name == ss).ToList();
                    db.Users.Add(user);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }

                return View(user);
            }
var list = ViewBag.MyList;
ViewBag.Title = "Create";
@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>User</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Type, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Type, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Type, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.WeposInList, htmlAttributes: new { @class = "control-label col-md-2" })
            <select  id="ShipFromCountries" multiple="multiple" name="ShipFromCountries">
                <div class="col-md-10">

                    @foreach (var VARIABLE in list)
                {
                        <option value="@VARIABLE.Wepon_Name">@VARIABLE.Wepon_Name</option>
                    }
                </div>
            </select>
        </div>






        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}