EntityFramework数据持久化 添加和查询

                                                   

首先建立一个数据库MyDB

第一个是Catelog表

然后则是类别表Article

两表以Catelog的ID为主键,设立关联

建设ASP.NET Web应用程序(.NET Framework)

创建后第一步建设数据层,用工具或者手打

手打:业务层代码:

public partial class MyDBEntities1 : DbContext

    {

        public MyDBEntities1()

            : base("name=MyDBEntities1")

        {

        }

   

        protected override void OnModelCreating(DbModelBuilder modelBuilder)

        {

            throw new UnintentionalCodeFirstException();

        }

   

        public virtual DbSet<Article> Article { get; set; }

        public virtual DbSet<Catelog> Catelog { get; set; }

    }

Articl数据层:

public partial class Article

    {

        public int id { get; set; }

        public string Title { get; set; }

        public string Author { get; set; }

        public string Content { get; set; }

        public Nullable<int> Catelogid { get; set; }

   

        public virtual Catelog Catelog { get; set; }

}

Catelog数据层:

public partial class Catelog

    {

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]

        public Catelog()

        {

            this.Article = new HashSet<Article>();

        }

   

        public int id { get; set; }

        public string Name { get; set; }

        public string comment { get; set; }

   

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]

        public virtual ICollection<Article> Article { get; set; }

}

工具:在添加中Data中找到ADO.NET    实体数据模型,选择来自数据库的EF设计器,下一步后新建连接,测试连接成功后,一直点击下一步,即创建完成。

创建Web窗体,用table包裹数据控件Repeater,在Repeater外是页眉,可以设置border获取边框,让数据看起来比较立体。

<table border="1">

                <tr>

                    <td>标题</td>

                    <td>内容</td>

                    <td>发帖人</td>

                    <td>类别</td>

                </tr>

数据库中需要创建ItemTemplate,否则无法输入HTML的语法,<%#Eval (绑定的数据要与数据库相同) %>

                <asp:Repeater ID="Repeater1" runat="server">

                <ItemTemplate>

                    <tr>

                        <td><%#Eval ("Title") %></td>

                        <td><%#Eval ("Author") %></td>

                        <td><%#Eval ("Content") %></td>

                        <td><%#Eval ("CatelogName") %></td>

                    </tr>

                </ItemTemplate>

            </asp:Repeater>

            </table>

            <asp:Button ID="添加" runat="server" Text="Button" OnClick="Button1_Click" />

————————————————————————————————————

点击添加按钮,进入编码层。

protected void Page_Load(object sender, EventArgs e)

        {

MyDBEntities1 db = new MyDBEntities1();//连接数据库的实体化

var result = from article in db.Article

                         join Catelog in db.Catelog on article.Catelogid equals Catelog.id

                         select new { Title = article.Title,

                             Content = article.Content,

                             Author = article.Author,

                             CatelogName = Catelog.Name };

//连表进行查询

            this.Repeater1.DataSource = result.ToList();

        Repeater1.DataBind();//绑定数据库

//条件查询

List<Article>artcles=new List<Article>();//设置集合

            artcles.Add(db.Article.FirstOrDefault(p => p.id == 4));//查询的条件

}

//按钮控件中的代码,设计的数据添加到数据库

protected void Button1_Click(object sender, EventArgs e)

        {

            MyDBEntities1 db = new MyDBEntities1();

            Article article = new Article();

            article.Title = "下雨了";

            article.Content = "今天下雨了,等下去干饭";

            article.Author = "杨姓女子";

        1. article.Catelogid = 2;//两个当中选一个
        2. //article.Catelog = new Catelog() { id = 2 };//两个当中选一个

            db.Article.Add(article);

            db.SaveChanges();

            //Catelog c = new Catelog();

            //c.Name = "c#";

            //c.comment = "交流C#技术";

            //db.Catelog.Add(c);

            //int count = db.SaveChanges();

            //if (count >= 0)

            //{

            //    Response.Write("添加成功");

            //}

        }

以上代码中c.Name = "c#";这类代码,可以用输入控件代替,注意格式的转换,网页数据添加也不会有什么问题。

         如列:c.Name = "c#"控件转换为

c.Name=this.TextBox1.Text;

感谢观看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值