插入时未插入表中的db.SaveChanges()

时间:2015-03-12 02:02:55

标签: c# asp.net-mvc entity-framework

我打算将表单数据插入到数据表中,但它无效。

我先使用Code来更新数据表。

public partial class tmp2 : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Tmembre",
            c => new
                {
                    Idmembre = c.Int(),
                    Nommembre = c.String(),
                    Prenommembre = c.String(),
                    Mailmembre = c.String(),
                    SRCImage = c.String(),
                    Idassociation = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.Idmembre);

    }

}

身份不是主键。

在全球模型中我有:

public partial class Tmembre
{
    [Key] 
    public int Idmembre { get; set; }
    public string Nommembre { get; set; }
    public string Prenommembre { get; set; }
    public string Mailmembre { get; set; }
    public string SRCImage { get; set; }
    public int Idassociation { get; set; }
}

并在我所做的成员表中添加一个membre:

        else if (Request["boutonmembre"] == "Ajouter")
        {
            if (myFile != null && myFile.ContentLength > 0)
            {
                //string fileNameApplication = System.IO.Path.GetFileName(NAMEtxtFileName.FileName);
                string fileExtensionApplication = System.IO.Path.GetExtension(myFile.FileName);

                // generating a random guid for a new file at server for the uploaded file
                string newFile = Guid.NewGuid().ToString() + fileExtensionApplication;
                // getting a valid server path to save
                string filePath = System.IO.Path.Combine(Server.MapPath("Content\\themes\\image"), newFile);

                if (myFile.FileName != String.Empty)
                {
                    myFile.SaveAs(filePath);
                }
            }

            bool formok = true;
            Tmembre Membreajoute = new Tmembre();

            Membreajoute.SRCImage = "\\themes\\image\\photo_identite.jpg";

            if (Request["nom"] != "")
            {
                Membreajoute.Nommembre = Request["nom"];
            }
            else
            {
                formok = false;
            }

            if (Request["prenom"] != "")
            {
                Membreajoute.Prenommembre = Request["prenom"];
            }
            else
            {
                formok = false;
            }

            if (Request["mail"] != "")
            {
                Membreajoute.Mailmembre = Request["mail"];
            }
            else
            {
                formok = false;
            }

            if (formok == true)
            {
                //Sur la base du membre numéro 1
                Membreajoute.Idassociation = int.Parse(Request["idassociation"].ToString());
                int membremaxid = db.TmembresansEDMdb.Max(u => u.Idmembre);
                Membreajoute.Idmembre = membremaxid + 1;
                db.TmembresansEDMdb.Add(Membreajoute);
                db.SaveChanges();
                Association = db.dbTassociation.Find(Membreajoute.Idassociation);
                ViewData["Nomassociation"] = Association.Nomassociation;
                ViewData["Idassociation"] = Membreajoute.Idassociation;
                mymodel.lstmembre = (from a in db.TmembresansEDMdb
                                     where a.Idassociation == Membreajoute.Idassociation
                                     select a).ToList();
            }

没有错误,但表中没有插入行。

2 个答案:

答案 0 :(得分:1)

您要添加

吗?
 Tmembre Membreajoute = new Tmembre();

到数据库上下文?

像:

db.Membreajoutes.Add(Membreajoute);

答案 1 :(得分:0)

根据代码,很少需要逐步验证

  1. 是在保存dbcontext之前在上下文中添加的创建对象。 比如db。> .Add(Membreajoute)。在您的情况下可能是db.TmembresansEDMdb.Add(Membreajoute)
  2. 如果您有任何现有记录,您是否可以修改它。
  3. 您是否能够验证数据库配置

    希望这有帮助。