带有实体框架的ASP.net [英] ASP.net with Entity Framework

查看:47
本文介绍了带有实体框架的ASP.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我遇到了问题,即

我在数据库中有一个主题栏...现在我可以使用实体框架将grid添加到gridview

但无法检查主题是否已存在于我的数据库中...请任何人通过建议代码来帮助我。



< pre lang =c#> onlinequizEntities ob = new onlinequizEntities();
受保护 void Page_Load( object sender,EventArgs e)
{
show();
}

受保护 void btn_subjsub_Click( object sender,EventArgs e)
{
// 这里有问题...我想在这里检查主题r是否已经出现在
// gridview,如果存在,它将停止添加
Sub ob1 = new Sub();
ob1.Subject = txt_adminsub.Text;
ob.Sub.AddObject(ob1);
ob.SaveChanges();
show();
}

受保护 void btn_subres_Click( object sender,EventArgs e)
{
Response.Redirect( Subject.aspx);
}

public void show()
{
var res = 来自 abc ob.Sub 选择 abc;
gv.DataSource = res;
gv.DataBind();
}

public void gv_RowCommand( object sender,GridViewCommandEventArgs e)
{
if (e.CommandName == 删除
{
int id1 = Convert.ToInt32(e.CommandArgument);
var res =( from test1 in ob.Sub 其中 test1.Sub_id == id1 选择 test1).ToList();
foreach var res)
{
ob.Sub.DeleteObject(row);
}
ob.SaveChanges();
Response.Redirect( );
}
else if (e.CommandName == 编辑
{
int id1 = Convert.ToInt32(e.CommandArgument);
var sub =( from test in ob.Sub 其中 test.Sub_id == id1 选择 test).ToList();
foreach var r in sub)
{
if (r.Subject == txt_adminsub.Text)
{
Response.Redirect( );
}
else
{
r.Subject = txt_adminsub.Text;
}
}
ob.SaveChanges();
Response.Redirect( );
}
}

解决方案

尝试类似



 使用(onlinequizEntities ob =  new  onlinequizEntities())
{
Sub ob1 = new Sub();
ob1.Subject = txt_adminsub.Text;
if (!ob.Sub.Any(subject = > subject.Subject == ob1.Subject))
{
ob.Sub.AddObject(ob1);
ob.SaveChanges();
}
}





尝试并还原

PS:最好的方法是将表中的唯一列设置为表中的唯一约束,因为上面的

无法确保在不同用户同时插入或更新的情况下的唯一性。

希望这有帮助......


Hello,
I am having a problem i.e.,
I have a subject column in database...now i can add subject to the gridview using entity framework
but unable to check whether the subjects are already present in my database...please can anyone help me by suggesting the code.

onlinequizEntities ob = new onlinequizEntities();
protected void Page_Load(object sender, EventArgs e)
{
   show();
}

protected void btn_subjsub_Click(object sender, EventArgs e)
{
   //having problem here...i want to check here whether subjects r already present in the
   //gridview, if present it will stop adding
   Sub ob1 = new Sub();
   ob1.Subject = txt_adminsub.Text;
   ob.Sub.AddObject(ob1);
   ob.SaveChanges();
   show();
}

protected void btn_subres_Click(object sender, EventArgs e)
{
   Response.Redirect("Subject.aspx");
}

public void show()
{
   var res = from abc in ob.Sub select abc;
   gv.DataSource = res;
   gv.DataBind();
}

public void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
   if (e.CommandName == "Delete")
   {
      int id1 = Convert.ToInt32(e.CommandArgument);
      var res = (from test1 in ob.Sub where test1.Sub_id==id1 select test1).ToList();
      foreach (var row in res)
      {
         ob.Sub.DeleteObject(row);
      }
      ob.SaveChanges();
      Response.Redirect("");
   }
   else if (e.CommandName == "Edit")
   {
      int id1 = Convert.ToInt32(e.CommandArgument);
      var sub = (from test in ob.Sub where test.Sub_id==id1 select test).ToList();
      foreach(var r in sub)
      {
         if (r.Subject == txt_adminsub.Text)
         {
            Response.Redirect("");
         }
         else
         {
            r.Subject = txt_adminsub.Text;
         }
      }
      ob.SaveChanges();
      Response.Redirect("");
   }
}

解决方案

Try something like

using (onlinequizEntities  ob= new onlinequizEntities ())
        {
Sub ob1 = new Sub();
ob1.Subject = txt_adminsub.Text;
 if(!ob.Sub.Any(subject => subject.Subject == ob1.Subject))
        {
                ob.Sub.AddObject(ob1);
                ob.SaveChanges();
        }
}



Try and revert
PS : The best way is to set which ever Unique column as Unique Constraint in Table since the above
cannot ensure uniqueness in case of concurrent insertion or updations from different users.
Hope this helps...


这篇关于带有实体框架的ASP.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆