菜鸟重新了解C#

  记得最开始学习C#的时候,framework还是2.0 ... 现在心血来潮看到最新的C# MVC5+EF6 就尝试的搭了一下。

  按照其它前辈的方式一步一步也算,正常搭建并能显示数据了。

  期间遇到的问题,就是直接写的linq竟然查不出来数据...
 
  丢人丢大了。

                  ////列表  
            var register = from s in db.CrazyRegisterUsers
                           where s.cruId < 500
                           select s;
            ////根据ID排序  
            register = register.OrderBy(x => x.cruId);


  代码片断:
   public class CrazyRegisterContent : DbContext
    {


        static CrazyRegisterContent()
        {
            Database.SetInitializer<CrazyRegisterContent>(null);


        }




        //CrazyRegisterContent:DefaultConnection
        public CrazyRegisterContent() : base("CrazyRegisterContent") { }


        public DbSet<CrazyRegisterUser> CrazyRegisterUsers { get; set; }
    }
   }
  但是用以下方式,竟然可以查出来数据,百思不得其姐 :)
   //数据库上下文操作对象
   CrazyRegisterContent db = new CrazyRegisterContent();               
   List<CrazyRegisterUser> list1 = db.Database.SqlQuery<CrazyRegisterUser>("SELECT CRU_ID as cruId,CRU_EMAIL as cruEmail,CRU_NAME as cruName,CRU_PASSWORD as cruPassword,CRU_FLAG as cruFlag,CRU_UPDATEDATE as cruUpdateDate,CRU_CREATEDATE as cruCreateDate FROM CRAZY_REGISTER_USER WHERE CRU_ID<100 ").ToList();
   // db.Database.ExecuteSqlCommand("UPDATE CRAZY_REGISTER_USER SET CRU_UPDATEDATE=GETDATE() ");
   ViewData["DataList"] = list1;

  最后查了各种资料终于发现,是实体类映射的问题 ... 
  资料如下:Entity Framework Code First关系映射约定
  http://www.cnblogs.com/libingql/p/3353112.html


改进后的,这个是个人手动映射写法,有自动生成的不用自己写(:


using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;


namespace crazyhearted.Models
{
    [Table("Crazy_Register_User", Schema = "dbo")]
    public class CrazyRegisterUser
    {
        
        //实体类
        [Key]
        [Column("cru_id")]
        public int cruId { get; set; }
        [Column("cru_email")]
        public string cruEmail { get; set; }
        [Column("cru_Name")]
        public string cruName { get; set; }
        [Column("cru_Password")]
        public string cruPassword { get; set; }
        [Column("cru_Flag")]
        public string cruFlag { get; set; }
        [Column("cru_UPDATEDATE")]
        public DateTime cruUpdateDate { get; set; }
        [Column("cru_CREATEDATE")]
        public DateTime cruCreateDate { get; set; }


    }
}



习惯了JAVA的开发模式先创建的表,再生成的实体类,突然有点不习惯了。

后来发现别人EF不是这么玩的,是先写代码再通过代码生成表~~~..哎,老了。




猜你喜欢

转载自blog.csdn.net/thl331860203/article/details/72642357