3

これはほとんど機能していると思いますが、終了する方法がわかりません。

モデル:

 public class Location
 {
    public int LocationId { get; set; }
    public string SiteCode { get; set; }
    public int PersonId { get; set; }
    public int IncidentId { get; set; }
  }

モデルを見る

    public List<Location> LocationList { get; set; }

コントローラ:

    [HttpPost]
    public ActionResult AddRecord(RecordViewModel model)
    {
        if (ModelState.IsValid)
        {
            Location location;
            foreach (var loc in model.LocationList)
            {
                location = new Location
                {
                    PersonId = model.PersonId,
                    SiteCode = loc.SiteCode,
                    IncidentId = loc.IncidentId
                };
            }

            using (var db = new MyEntities())
            {
                db.Order.AddObject(incident);
                db.Location.AddObject(location);
                db.Comment.AddObject(comment);

                db.SaveChanges();
            }

回線db.Location.AddObject(location);が空です。foreach から db への場所のリストを取得するにはどうすればよいですか?

4

2 に答える 2

5

あなたはとても近いです!

// create a new list of your entity Location (may not be in namespace Data)
var locationList = new List<Data.Location>();
foreach (var loc in model.LocationList)
{
    var location = new Data.Location
    {
        PersonId = model.PersonId,
        SiteCode = loc.SiteCode,
        IncidentId = loc.IncidentId
    };
    locationList.Add(location);
}

using (var db = new MyEntities())
{
    db.Order.AddObject(incident);

    foreach (var item in LocationList)
    {
        db.Location.AddObject(location);
    }
    db.Comment.AddObject(comment);

    db.SaveChanges();
}

OR: モデルには既に LocationList があるため、代わりにそれを使用します

using (var db = new MyEntities())
{
    db.Order.AddObject(incident);

    foreach (var loc in model.LocationList)
    {
        var location = new Data.Location
        {
            PersonId = model.PersonId,
            SiteCode = loc.SiteCode,
            IncidentId = loc.IncidentId
        };

        db.Location.AddObject(location);
    }
    db.Comment.AddObject(comment);

    db.SaveChanges();
}
于 2013-06-20T17:15:19.147 に答える
0

addrange を使用するだけです。

db.YourTable.AddRange(YourList)
db.SaveChanges();

db.Location.AddRange(LocationList)
db.SaveChanges();
于 2017-08-22T08:23:21.370 に答える