1.寫這個框架要感謝一下之前的公司,逼我深入學習linq的一些東西.前前後修改過兩三次,該框架不和iqueryable查詢相似,但不是基於iqueryable來寫的,所以非常方便擴充套件,最終實現多表查詢和支援部分linq from語法(懶載入技術,不支援into語法).
如:
var q1 = from x in dms.create(false, false)
where x.sysroleid > 0 && x.rolename.like("s"
)
select
x;
var q2 = from x in dms.create(false, false
) join y
in dms.create()
on x.sysroleid equals y.sysroleid
select
new;
2.支援子查詢的語法(必須在子查詢中對錶名進行as)
var query = dms.create().where(q => q.sysrolepowerid > 0 && q.remark.like("qq")).select(q => new
);
3.資料返回預設為datatable型別,一般可以tolist《任意型別》(),根據型別的屬性字段進行值,不像iqueryable裡面的tolist不能傳型別,需進行select進行賦值.大大減少**量
4.支援資料過濾介面,可在框架外進行實現idmslinqqueryfilter介面進行配置過濾表的縱向資料許可權,橫向資料許可權可用columnsclip進行拼接的方式進行調整.
<configuration
>
<
configsections
>
<
section
name
="dmslinqqueryprovider"
type
="kingnet.dmsframe.dmslinq.dmslinqqueryprovider,kingnet.dmsframe.dmslinq"
/>
configsections
>
<
dmslinqqueryprovider
>
<
add
key="query1"
value
="kingnet.dmsframe.business.queryfilterbll,kingnet.dmsframe.business"
/>
dmslinqqueryprovider
>
configuration
>
5.支援字段拼接查詢或做為條件
var query2 = dms.create<userinfo
>().select(q => q.columns((q.title + q.username).as("username")));
DMSLinq表示式框架實現 六
這段時間一直在優化dmslinq,也看到了有些方法存在不合理處.還把框架內的公用類進行了分解,以後可以開源用.優化了一些方法,使其更能支援每個人的習慣寫法 1.改進join前不能加where條件的bug 2.改進查詢列時as方法用new匿名例項時出現兩個as列名的現象 3.增加whereclip等動...
CronExpression表示式語法總結
乙個cron表示式由6或7個時間元素組成。它們之間用空格分隔,依次為 秒 分 小時 日 月 星期 年 序號說明 是否必填 允許填寫的值 允許的符號1秒 是0 59 2分 是0 59 3小時 是0 23 4日 是1 31 l w5月 是1 12 or jan dec 6星期 是1 7 or sun s...
CronExpression表示式語法總結
乙個cron表示式由6或7個時間元素組成。它們之間用空格分隔,依次為 秒 分 小時 日 月 星期 年 序號說明 是否必填 允許填寫的值 允許的符號1秒 是0 59 2分 是0 59 3小時 是0 23 4日 是1 31 l w5月 是1 12 or jan dec 6星期 是1 7 or sun s...