C# 实战笔记
http://www.cnblogs.com/ymnets/p/3424514.html
学习点
关于IEnumerable和IQueryable两接口的区别
二者都是静态类
区另主要在:
(1)所有对于IEnumerable的过滤,排序等操作,都是在内存中发生的。也就是说数据已经从数据库中获取到了内存中,只是在内存中进行过滤和排序操作。
(2)所有对于IQueryable的过滤,排序等操作,只有在数据真正用到的时候才会到数据库中查询。这也是Linq的延迟加载核心所在。
表达树 Expression<Func<TEntity, bool>>
使用表达式树可以将代码表示成一个对象树,在Linq中大量的被应用。树形结构都知道是什么,表达树式的每一个节点都是一个表达式,在C#中我们使用Experssion类进行创建表达式树
Expression<Func<TEntity, bool>>
注func<in参数1,out参数2>, 有输入参数,有返回值
开始项目
新建层
- 基础层
Pray.Code 基础组件,如文件操作与e-mail组件
Pray.Data 数据库类,引用Code集,并添加EF框架 - 应用层
Pray.Application 业务 引用Code集、Data集、Domain集、Repository集
Pray.Domain 接口类与实体,仓库接口.引用Code集、Data集
Pray.Mapping 映射层,与数据层 引用Code集、Data集、Domain集、
Pray.Repository 连接仓库,与业务中用来new()实体连接Domain中的接口,并添加EF框架 - Web应用层
Pray.Wed 视图层,UI与控制器 引用app业务层、code集、Domain、Mapping集
创建基础控制器
JS相关
修改
.attr({title="dfs",style="padding:5px;"});
.append()添加到结尾
框架的相关备忘
添加一个实体的过程:
1、数据库映射
在Mapping里映射LogEntity 为实体
using System.Data.Entity.ModelConfiguration;
public class LogMap : EntityTypeConfiguration<LogEntity>
{
public LogMap()
{
this.ToTable("Sys_Log");
this.HasKey(t => t.F_Id);
}
}
2、在Domain层03 Entity添加实体结构
/// <summary>
/// 操作日志实体
/// </summary>
public class LogEntity : IEntity<LogEntity>, ICreationAudited
{
/// <summary>
/// id
/// </summary>
public string F_Id { get; set; }
/// <summary>
/// 时间
/// </summary>
public DateTime? F_Date { get; set; }
}
3、在Domain层04 IRepository添加泛型接口
public interface ILogRepository : IRepositoryBase<LogEntity>
{
}
4、在Repository层里添加非泛型接口
public class LogRepository : RepositoryBase<LogEntity>, ILogRepository
{
}
5、最后在Application层添加应用层
jQuery
prepend在前面添加元素
removeClass