1.(表实体和表之间的相互转化)微型的ORAM框架:Dapper(sql)/PETAPOCO(跨数据库)
2.ab(并发测试)/LogRunner(惠普的专业测试)/aqtime(强大到可以提示每行代码执行时间)
td(开发人员的测试工具)
3.级别高的模板没有tt文件时,右键添加代码生成项,可以生成Model文件。
4.导航属性:数据集方便进行访问
5.Linq语句中只能使用&& ||
一个简单的Linq的例子
IQueryable<UserInfor> temp = from u in dbContext.UserInfor
where u.Id >= 1&& u.UName.Contains("o")
&& u.UName.StartsWith("D")
select u;
6.LinQ整合后性能是最好的
IQueryable<UserInfor> temp = from u in dbContext.UserInfor
where u.Id >= 1&& u.UName.Contains("o")
&& u.UName.StartsWith("D")
select u;
var temp2 = from u in temp
where u.Id > 0
select u;
7. 第一种延迟加载 多 LinQ语句个整合,第二种延迟加载,根据导航属性自动查询关联表的信息
IQueryable<UserInfor> temp = from u in dbContext.UserInfor.Include("OrderInfo")
where u.Id >= 1&& u.UName.Contains("o")
&& u.UName.StartsWith("D")
select u;
var temp2 = from u in temp
where u.Id > 0
select u;
foreach (var userInfor in temp)
{
foreach (var orderInfor in userInfor.OrderInfor)
{
Console.WriteLine(userInfor.UName + " " + orderInfor.Id + " " + orderInfor.Content);
}
}
8.大数据表进行查询时技巧:
一.把链接查询进行分解,转换成单个大表
二. 使用临时表可以解决死锁的问题 . 建立临时表的方法:select * into #(#) Tb from UserInfo;
9.lambda查询
var data = dbContext.UserInfor.Where(u => u.Id > 0);
foreach (var userInfo in data)
{
Console.WriteLine(userInfo.Id + " " + userInfo.UName);
}
10.分页查询
#region 分页
var pageData = dbContext.UserInfor
.Where(u => u.Id > 0)
//.OrderBy(u=>u.Id) 省序
.OrderByDescending(u => u.Id)
//一页5条 取3页
.Skip(5 * (3 - 1))
.Take(5);
foreach (var aa in pageData)
{
}
#endregion
11.bootstrap是一个很好的做前台的工具
12.处理数据混乱的方法
web:一次请求新建一个上下文
winform:使用using
13 using范例
using (DataModelContainer dbContext=new DataModelContainer())
{
dbContext.Database.CreateIfNotExists();
UserInfo userinfo=new UserInfo();
userinfo.age=10;
userinfo.name="aaaa";
dbContext.UserInfo.add(userinfor);
dbContext.SaveChages();
}
14.dbContext一次请求共用一个上下文
public class DbContextHelper
{
//保证一次请求公用一个上下文实例
public static MyDbContext GetCurrentDbContext()
{
// HttpContext :一次请求,HttpContext已经保证只有一个实例
MyDbContext dbContext=HttpContext.Current.Items["MyDbContext"] as MyDbContext;
if(dbContext==null)
{
dbContext=new MyDbContext();
HttpContext.Current.Items.Add("MyDbContext",dbContext);
}
//一个线程共用一个上下文实例,一次请求用一个线程
MyDbContext dbContext_process = System.Runtime.Remoting.Messaging.CallContext.GetData("DbContext") as MyDbContext;
if (dbContext_process == null)
{
dbContext_process = new MyDbContext();
CallContext.SetData("DbContext", dbContext);
}
return dbContext;
}
}
public class MyDbContext
{
}
15.Mono是一个跨平台的项目,这个是非常重要的