EF 查询数据

30 篇文章 0 订阅



点击确定添加后自动生成Model1.cs

    public partial class Model1 : DbContext
    {
        public Model1()
            : base("name=Model11")
        {
        }

        public virtual DbSet<AreaInfo> AreaInfo { get; set; }
        public virtual DbSet<UserInfo> UserInfo { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<AreaInfo>()
                .Property(e => e.Address)
                .IsUnicode(false);

            modelBuilder.Entity<UserInfo>()
                .Property(e => e.Name)
                .IsFixedLength();

            modelBuilder.Entity<UserInfo>()
                .Property(e => e.Jg)
                .IsFixedLength();
        }
    }

UserInfo.cs自动生成如下

    [Table("UserInfo")]
    public partial class UserInfo
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Id { get; set; }

        [Required]
        [StringLength(50)]
        public string Name { get; set; }

        public int Age { get; set; }

        [StringLength(10)]
        public string Jg { get; set; }
    }
EF 查询一

        public void GetInfo()
        {
            richTextBox1.Text = string.Empty;
            using (Model1 db = new Model1())
            {
                //1.Linq to Entities
                var info = from c in db.UserInfo where c.Age > 10 orderby c.Age descending  select c;
                foreach (var item in info)
                {
                    richTextBox1.Text += "姓名:" + item.Name + " 年龄:" + item.Age + "\n";
                }
            }
        }


EF 查询数据二

               //2.Lambda查询
                var info = db.UserInfo.Where(c => c.Age > 10).OrderBy(c => c.Age);

EF 查询数据三

//3.ObjectContext.CreateQuery查询
var sql = "select value a from UserInfo as a  where a.Age > 20 order by a.Age desc limit 10";
var info = ((IObjectContextAdapter)db).ObjectContext.CreateQuery<UserInfo>(sql);


EF 查询数据四

//4.SqlQuery<>查询
var sql = "select * from UserInfo where age > 15 order by age desc";
var info = db.Database.SqlQuery<UserInfo>(sql);
这样用*查询的是全部列的数据

如果我只查询两列Name和Age怎么办

精简UserInfo

class User
{
      public string Name { get; set; }
      public int Age { get; set; }
}

var sql = "select Name,Age from UserInfo where age > 15 order by age desc";
var info = db.Database.SqlQuery<User>(sql);


两个的查询结果相同


EF 查询数据五

//5.SqlQuery()查询
var sql = "select * from UserInfo where age > 15 order by age desc";
object[] obj = new object[1];
var info = db.UserInfo.SqlQuery(sql, obj);
查询结果和四相同



  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值