FreeSQL является мощным компонентом O/RM, поддерживает .NET CORE 2.1+, .NET FRAMEROW 4.0+, XAMARIN и AOT.
Английский | 中文
Группы QQ : 561616019 (Доступно) 、 4336577 (полная) 、 8578575 (полная) 、 52508226 (полная)
| Начните | Выберите | Обновление | Вставьте | Удалить | Часто задаваемые вопросы |
| Выражение | CodeFirst | Dbfirst | Фильтры | Аоп |
| Репозиторий | 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 ) ;
} Ссылка: Используйте TransactionalAttribute и UnitOfWorkManager в ядре ASP.NET для достижения множественного распространения транзакций .
Freesql Query & Dapper запрос
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, 深圳 | 凉茶, Денсен2014, Liooliaowuju, HD2Y, TKY753, Feijie999, Константин, Johnzhou2020, Mafeng8, Vicbilily, oharhen91, quarhen91, quarhen91, gomerhen91, gomerhen9, gomerhen9, koarj d4ilys и т. д.
L*y 58 元、花花 88 元、麦兜很乖 50 元、网络来者 2000 元、 John 99,99 元、 Alex 666 元、 Bacongao 36 元、无名 100 元、 вечность 188 元、无名 10 元、⌒.helper ~ ..OO 66 元、习惯与被习惯 100 元、无名 100 元、蔡易喋 88,88 元、中讯科技 1000 元、 Хорошая работа 24 元、 100 元、哈利路亚 300 元、 元、 100 元、蛰伏 99,999999. 66,66 元、 MOTA 5 元、 Ldzxg 30 元、 около 30 元、建爽 66 元、无名 200 元、 Lambertwu 100 元、无名 18,88 元、乌龙 50 元、无名 100 元、陳怼怼 66,66 元、陳怼怼 66,66 元、丁淮 100 元、李伟坚-Excel 催化剂 10066 元、她微笑的脸 30 元、 Вечность² Определи ° M²¹ 588 元、夜归柴门 88 元、蔡易喋 6666666666666666666666666 66666 66666 6666 6666666 元、她微笑的脸 y 30 元、. 10 元、 litrpa 88 元、 alax Chow 200 元、 ежедневно 66 元、 K*T 66 元、蓝 100 元、*菜 10 元、生命如歌 1000 元、山鸡 88 元、平凡 100 元、大树 1000 元、软软的毛毛虫 66,66 元、问卷星 2000 元、与你无关 5000 元
Спасибо за пожертвование
Алипай
Грань