FREESQLは、強力なO/RMコンポーネントであり、.NETコア2.1+、.NETフレームワーク4.0+、Xamarin、およびAOTをサポートしています。
英語| 中文
QQグループ: 561616019(利用可能) 、4336577(フル)、8578575(フル)、52508226(フル)
| 始めましょう| 選択| 更新| 挿入| 削除| よくある質問 |
| 式| codefirst | dbfirst | フィルター| aop |
| リポジトリ| Unitofwork | 動的操作| アド |
| 読み取り/書き込み| テーブルの分割| ハイテクを隠す|メモを更新します |
開発モードを選択してください:
FreesQLを使用するいくつかのオープンソースプロジェクト:

dotnetパッケージfreesql.provider.sqliteを追加します
static IFreeSql fsql = new FreeSql . FreeSqlBuilder ( )
. UseConnectionString ( FreeSql . DataType . Sqlite , @"Data Source=document.db" )
. UseAutoSyncStructure ( true ) //automatically synchronize the entity structure to the database
. Build ( ) ; //be sure to define as singleton mode
class Song {
[ Column ( IsIdentity = true ) ]
public int Id { get ; set ; }
public string Title { get ; set ; }
public string Url { get ; set ; }
public DateTime CreateTime { get ; set ; }
public ICollection < Tag > Tags { get ; set ; }
}
class Song_tag {
public int Song_id { get ; set ; }
public Song Song { get ; set ; }
public int Tag_id { get ; set ; }
public Tag Tag { get ; set ; }
}
class Tag {
[ Column ( IsIdentity = true ) ]
public int Id { get ; set ; }
public string Name { get ; set ; }
public int ? Parent_id { get ; set ; }
public Tag Parent { get ; set ; }
public ICollection < Song > Songs { get ; set ; }
public ICollection < Tag > Tags { get ; set ; }
} //OneToOne、ManyToOne
fsql . Select < Tag > ( ) . Where ( a => a . Parent . Parent . Name == "English" ) . ToList ( ) ;
//OneToMany
fsql . Select < Tag > ( ) . IncludeMany ( a => a . Tags , then => then . Where ( sub => sub . Name == "foo" ) ) . ToList ( ) ;
//ManyToMany
fsql . Select < Song > ( )
. IncludeMany ( a => a . Tags , then => then . Where ( sub => sub . Name == "foo" ) )
. Where ( s => s . Tags . Any ( t => t . Name == "Chinese" ) )
. ToList ( ) ;
//Other
fsql . Select < YourType > ( )
. Where ( a => a . IsDelete == 0 )
. WhereIf ( keyword != null , a => a . UserName . Contains ( keyword ) )
. WhereIf ( role_id > 0 , a => a . RoleId == role_id )
. Where ( a => a . Nodes . Any ( t => t . Parent . Id == t . UserId ) )
. Count ( out var total )
. Page ( page , size )
. OrderByDescending ( a => a . Id )
. ToList ( )もっと..
fsql . Select < Song > ( ) . Where ( a => new [ ] { 1 , 2 , 3 } . Contains ( a . Id ) ) . ToList ( ) ;
fsql . Select < Song > ( ) . Where ( a => a . CreateTime . Date == DateTime . Today ) . ToList ( ) ;
fsql . Select < Song > ( ) . OrderBy ( a => Guid . NewGuid ( ) ) . Limit ( 10 ) . ToList ( ) ;
fsql . Select < Song > ( ) . ToList ( a => new
{
a . Id ,
Tags = fsql . Select < Tag > ( ) . ToList ( ) ,
SongTags = fsql . Select < SongTag > ( ) . Where ( b => b . TopicId == a . Id ) . ToList ( )
} ) ;もっと..
dotnetパッケージfreesql.repositoryを追加します
[ Transactional ]
public void Add ( ) {
var repo = ioc . GetService < BaseRepository < Tag > > ( ) ;
repo . DbContextOptions . EnableCascadeSave = true ;
var item = new Tag {
Name = "testaddsublist" ,
Tags = new [ ] {
new Tag { Name = "sub1" } ,
new Tag { Name = "sub2" }
}
} ;
repo . Insert ( item ) ;
}参照:ASP.NETコアのTransactionalAttributeとUnitOfWorkManagerを使用して、複数のトランザクション伝播を実現します。
freesqlクエリとダッパークエリ
Elapsed: 00:00:00.6733199 ; Query Entity Counts: 131072 ; ORM: Dapper
Elapsed: 00:00:00.4554230 ; Query Tuple Counts: 131072 ; ORM: Dapper
Elapsed: 00:00:00.6846146 ; Query Dynamic Counts: 131072 ; ORM: Dapper
Elapsed: 00:00:00.6818111 ; Query Entity Counts: 131072 ; ORM: FreeSql *
Elapsed: 00:00:00.6060042 ; Query Tuple Counts: 131072 ; ORM: FreeSql *
Elapsed: 00:00:00.4211323 ; Query ToList < Tuple > Counts: 131072 ; ORM: FreeSql *
Elapsed: 00:00:01.0236285 ; Query Dynamic Counts: 131072 ; ORM: FreeSql *FreesQL Tolist&Dapperクエリ
Elapsed: 00:00:00.6707125 ; ToList Entity Counts: 131072 ; ORM: FreeSql *
Elapsed: 00:00:00.6495301 ; Query Entity Counts: 131072 ; ORM: Dapperもっと..
そして、このプロジェクトのために重要な提案をした他の友人は、次のことを含みます。
Systemhejiyong、Lambertw、Mypeng1985、StulzQ、Movingsam、Aler-R、Zouql、深圳|凉茶、Densen2014、Liaoliaoowuju、Hd2Y、Tky753、Feijie999、Constantine、Johnzhou2020、Mafeng8、vicbilibilbily、vicbilibilbily、johnzhou2020、など
L*y 58元、花花88 元、麦兜很乖50 元、网络来者 2000 元、ヨハネ99.99 元、アレックス666 元、バコンガオ36元、无名100元、永遠188 元、无名10元、⌒10元、⌒。 66.66 元、Mota 5 元、Ldzxg 30 元、 30 元、建爽66 元、无名 200 元、200 元、 18.88 元、乌龙50元、无名100元、陳怼怼 100元、陳怼怼66.66 元、陳怼怼66.66 元、丁淮 100元、李伟坚88 元、 alax chow 200 元、毎日66 元、 k*t 66元、蓝100 元、*菜10元、生命如歌1000元、山鸡88元、平凡100元、大树1000元、软软的毛毛虫 66.66
寄付ありがとうございます
アリパイ
mit