You must Sign In to post a response.
  • Category: LINQ

    How to insert data to multiple entity in same time

    my interface and diagram found in this link below
    http://www.mediafire.com/view/mn44bl69zkrjukp/Interface3.jpg
    I need to make multiple insert to multiple table have relation with each other

    what i need actually when user click submit

    Save the following data

    Name,Email,Salary,DistrictId in table Employee

    EmployeeId,CourseId in table EmployeeCourse

    EmployeeId,LanaguageId,LevelId in table EmployeeLangage

    what i write in create function in empcourse controller

    my custom model as following

    public class Customemployee
    {
    public string Name { get; set; }
    public string Salary { get; set; }

    public string Email { get; set; }
    public int DistrictId { get; set; }

    public List<Empcourse> Courses { get; set; }
    public List<Emplangauge> Langs { get; set; }
    }
    public class Empcourse
    {
    public int Id { get; set; }
    public int EmployeeId { get; set; }
    public int CourseId { get; set; }
    }
    public class Emplangauge
    {
    public int Id { get; set; }

    public int LevelId { get; set; }
    public int LanguageId { get; set; }

    }

    }



    my controller empcourse is

    public class empcourseController : Controller
    {
    mycourseEntities db = new mycourseEntities();
    // GET: empcourse
    public ActionResult Index()
    {
    return View();
    }
    public ActionResult Create()
    {
    ViewBag.CountryId = new SelectList(db.Countries.ToList(), "Id", "CountryName");
    ViewBag.LanaguageId = new SelectList(db.Languages.ToList(), "Id", "LnaguageName");
    ViewBag.LevelId = new SelectList(db.Levels.ToList(), "Id", "LevelName");
    ViewBag.CourseId = new SelectList(db.Courses.ToList(), "Id", "CourseName");
    return View();
    }
    [HttpPost]
    public ActionResult Create(Customemployee cemp)
    {
    return View();
    }
    public JsonResult getcitybyid(int id)
    {
    db.Configuration.ProxyCreationEnabled = false;
    return Json(db.Cities.Where(a => a.CountryId == id), JsonRequestBehavior.AllowGet);
    }
    public JsonResult getdistrictbyid(int id)
    {
    db.Configuration.ProxyCreationEnabled = false;
    return Json(db.Destricts.Where(a => a.CityId == id), JsonRequestBehavior.AllowGet);
    }
    }
    }
    my Create view is

    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title>Create</title>
    <script src="~/scripts/jquery-1.10.2.js"></script>
    <script>
    $(function () {
    $("#CountryId").change(function () {
    $("#citylist").empty();
    // alert("error");
    var x = $(this).val();
    $.ajax({
    url: "/empcourse/getcitybyid",
    data: { id: x },
    success:function(res)
    {
    $.each(res, function (i, e) {
    $("#citylist").append("<option value='" + e.Id + "'>" + e.CityName + "<option>")

    });
    }
    });


    });
    $("#citylist").change(function () {
    $("#districtlist").empty();
    // alert("error");
    var y = $(this).val();
    $.ajax({
    url: "/empcourse/getdistrictbyid",
    data: { id: y },
    success: function (res) {
    $.each(res, function (i, e) {
    $("#districtlist").append("<option value='" + e.Id + "'>" + e.DistrictName + "<option>")

    });
    }
    });


    });
    $("#CourseId").change(function () {
    var index = 0;
    var id = $(this).val();
    var txt = $("#CourseId option:selected").text();
    $("#tb").append("<tr><td><input type = 'hidden' name='Courses[" + index + "].CourseId' value='" + id + "'/></td><td>" + txt + "</td><td><input type='button' value='remove' class='r'</td></tr>")

    index++;
    });
    $("#tb").on("click", ".r", function () {
    $(this).parent().parent().hide();
    $(this).parent().prev().prev().find("input").val("0");
    });
    $("#LanaguageId").change(function () {
    var index1 = 0;
    var id1 = $(this).val();
    var txt1 = $("#LanaguageId option:selected").text();
    $("#tb1").append("<tr><td><input type = 'hidden' name='Langs[" + index1 + "].LanguageId' value='" + id1 + "'/></td><td>" + txt1 + "</td><td><input type='button' value='remove' class='s'</td></tr>")

    index1++;
    });
    $("#tb1").on("click", ".s", function () {
    $(this).parent().parent().hide();
    $(this).parent().prev().prev().find("input").val("0");
    });

    $("#LevelId").change(function () {
    var index2 = 0;
    var id2 = $(this).val();
    var txt2 = $("#LevelId option:selected").text();
    $("#tb2").append("<tr><td><input type = 'hidden' name='Langs[" + index2 + "].LevelId' value='" + id2 + "'/></td><td>" + txt2 + "</td><td><input type='button' value='remove' class='y'</td></tr>")

    index2++;
    });
    $("#tb2").on("click", ".y", function () {
    $(this).parent().parent().hide();
    $(this).parent().prev().prev().find("input").val("0");
    });
    });
    </script>
    </head>
    <body>
    <div>
    @using (Html.BeginForm())
    {
    <div>
    Name:@Html.TextBoxFor(a=>a.Name)
    <br />
    Salary:@Html.TextBoxFor(a => a.Salary)
    <br />
    Email:@Html.TextBoxFor(a => a.Email)
    <br />
    Country:@Html.DropDownList("CountryId")
    <br />
    City:<select id="citylist" name="CityId"></select>
    <br />
    District:<select id="districtlist" name="DistrictId"></select>
    <br />
    Courses:@Html.DropDownList("CourseId")
    <br />
    <br />

    <table id="tb"></table>
    <br />
    <br />

    Language:@Html.DropDownList("LanaguageId")
    <br />
    <br />

    <table id="tb1"></table>
    <br />
    <br />

    Level:@Html.DropDownList("LevelId")
    <br />
    <br />

    <table id="tb2"></table>
    <br />
    <input type="submit" />
    </div>
    }
    </div>
    </body>
    </html>
    my interface and Relation diagram is
  • #767606
    Hi,

    What problem have you faced?


    Are you getting any error?

    If you want to insert multiple records into multiple tables then make a separate query for each and every table.

    Hope this helps you....

    --------------------------------------------------------------------------------
    Give respect to your work, Instead of trying to impress your boss.

    N@veen
    Blog : http://naveens-dotnet.blogspot.in/

  • #767698
    Hai Ahmedsa,
    If you want to insert multiple entities at the same time, keep those entity under a Model class then you can initialize the model with internal entities and then you can easily insert in to those multiple entities.
    Hope it will be helpful to you.

    Regards,
    Pawan Awasthi(DNS MVM)
    +91 8123489140 (whatsApp), +60 14365 1476(Malaysia)
    pawansoftit@gmail.com


  • Sign In to post your comments