ถ้าคุณชอบสิ่งที่เราทำให้พิจารณานำแสดงโดยการแบ่งปันและการบริจาค!
โปรดช่วยเราในการบำรุงรักษา seorag โดยการทำแบบสำรวจชุมชน SEAQL 2024!
เข้าร่วมเซิร์ฟเวอร์ Discord ของเราเพื่อแชทกับสมาชิกคนอื่น ๆ ของชุมชน SEAQL!
ตัวอย่างการรวม:
async
อาศัย SQLX SeaORM เป็นห้องสมุดใหม่ที่มีการสนับสนุน ASYNC ตั้งแต่วันที่ 1
พลวัต
SeaOrm สร้างขึ้นบน SeaQuery ช่วยให้คุณสร้างแบบสอบถามแบบไดนามิกที่ซับซ้อน
ทดสอบได้
ใช้การเชื่อมต่อจำลองและ/หรือ SQLite เพื่อเขียนการทดสอบสำหรับตรรกะแอปพลิเคชันของคุณ
บริการที่มุ่งเน้น
สร้างบริการอย่างรวดเร็วที่เข้าร่วมกรองเรียงลำดับและแบ่งข้อมูลในส่วนที่เหลือ GraphQL และ GRPC APIs
use sea_orm :: entity :: prelude :: * ;
# [ derive ( Clone , Debug , PartialEq , DeriveEntityModel ) ]
# [ sea_orm ( table_name = "cake" ) ]
pub struct Model {
# [ sea_orm ( primary_key ) ]
pub id : i32 ,
pub name : String ,
}
# [ derive ( Copy , Clone , Debug , EnumIter , DeriveRelation ) ]
pub enum Relation {
# [ sea_orm ( has_many = "super::fruit::Entity" ) ]
Fruit ,
}
impl Related < super :: fruit :: Entity > for Entity {
fn to ( ) -> RelationDef {
Relation :: Fruit . def ( )
}
} // find all models
let cakes : Vec < cake :: Model > = Cake :: find ( ) . all ( db ) . await ? ;
// find and filter
let chocolate : Vec < cake :: Model > = Cake :: find ( )
. filter ( cake :: Column :: Name . contains ( "chocolate" ) )
. all ( db )
. await ? ;
// find one model
let cheese : Option < cake :: Model > = Cake :: find_by_id ( 1 ) . one ( db ) . await ? ;
let cheese : cake :: Model = cheese . unwrap ( ) ;
// find related models (lazy)
let fruits : Vec < fruit :: Model > = cheese . find_related ( Fruit ) . all ( db ) . await ? ;
// find related models (eager)
let cake_with_fruits : Vec < ( cake :: Model , Vec < fruit :: Model > ) > =
Cake :: find ( ) . find_with_related ( Fruit ) . all ( db ) . await ? ; let apple = fruit :: ActiveModel {
name : Set ( "Apple" . to_owned ( ) ) ,
.. Default :: default ( ) // no need to set primary key
} ;
let pear = fruit :: ActiveModel {
name : Set ( "Pear" . to_owned ( ) ) ,
.. Default :: default ( )
} ;
// insert one
let pear = pear . insert ( db ) . await ? ;
// insert many
Fruit :: insert_many ( [ apple , pear ] ) . exec ( db ) . await ? ; use sea_orm :: sea_query :: { Expr , Value } ;
let pear : Option < fruit :: Model > = Fruit :: find_by_id ( 1 ) . one ( db ) . await ? ;
let mut pear : fruit :: ActiveModel = pear . unwrap ( ) . into ( ) ;
pear . name = Set ( "Sweet pear" . to_owned ( ) ) ;
// update one
let pear : fruit :: Model = pear . update ( db ) . await ? ;
// update many: UPDATE "fruit" SET "cake_id" = NULL WHERE "fruit"."name" LIKE '%Apple%'
Fruit :: update_many ( )
. col_expr ( fruit :: Column :: CakeId , Expr :: value ( Value :: Int ( None ) ) )
. filter ( fruit :: Column :: Name . contains ( "Apple" ) )
. exec ( db )
. await ? ; let banana = fruit :: ActiveModel {
id : NotSet ,
name : Set ( "Banana" . to_owned ( ) ) ,
.. Default :: default ( )
} ;
// create, because primary key `id` is `NotSet`
let mut banana = banana . save ( db ) . await ? ;
banana . name = Set ( "Banana Mongo" . to_owned ( ) ) ;
// update, because primary key `id` is `Set`
let banana = banana . save ( db ) . await ? ; // delete one
let orange : Option < fruit :: Model > = Fruit :: find_by_id ( 1 ) . one ( db ) . await ? ;
let orange : fruit :: Model = orange . unwrap ( ) ;
fruit :: Entity :: delete ( orange . into_active_model ( ) )
. exec ( db )
. await ? ;
// or simply
let orange : Option < fruit :: Model > = Fruit :: find_by_id ( 1 ) . one ( db ) . await ? ;
let orange : fruit :: Model = orange . unwrap ( ) ;
orange . delete ( db ) . await ? ;
// delete many: DELETE FROM "fruit" WHERE "fruit"."name" LIKE 'Orange'
fruit :: Entity :: delete_many ( )
. filter ( fruit :: Column :: Name . contains ( "Orange" ) )
. exec ( db )
. await ? ; Seaograph เป็นเฟรมเวิร์ก GraphQL ที่สร้างขึ้นบนสุดของ Seororm Seaography ช่วยให้คุณสร้างตัวแก้ไข GraphQL ได้อย่างรวดเร็ว ด้วยคำสั่งเพียงไม่กี่คำคุณสามารถเรียกใช้เซิร์ฟเวอร์ GraphQL จาก SeaORM Entities!
ดูตัวอย่างของ Seapoagn เพื่อเรียนรู้เพิ่มเติม
การใช้ประโยชน์จากการตรวจสอบทางทะเลมันจะเป็นเรื่องง่ายในการสร้างแดชบอร์ดผู้ดูแลระบบด้วยเฟรมเวิร์กส่วนหน้าที่คุณชื่นชอบ ตรวจสอบตัวอย่างและบทเรียนของเรา:
ดูสร้างด้วย Seororm อย่าลังเลที่จะส่งของคุณ!
ได้รับใบอนุญาตภายใต้
ตามตัวเลือกของคุณ
เว้นแต่คุณจะระบุอย่างชัดเจนเป็นอย่างอื่นการมีส่วนร่วมใด ๆ ที่ส่งโดยเจตนาเพื่อรวมไว้ในงานโดยคุณตามที่กำหนดไว้ในใบอนุญาต Apache-2.0 จะได้รับใบอนุญาตคู่ดังกล่าวข้างต้นโดยไม่มีข้อกำหนดหรือเงื่อนไขเพิ่มเติมใด ๆ
เราขอเชิญคุณเข้าร่วมมีส่วนร่วมและช่วยร่วมกันสร้างอนาคตของ Rust
เสียงตะโกนครั้งใหญ่กับผู้มีส่วนร่วมของเรา!
Seaql.org เป็นองค์กรโอเพนซอร์สอิสระที่ดำเนินการโดยนักพัฒนาที่หลงใหล หากคุณสนุกกับการใช้ห้องสมุดของเราโปรดแสดงและแบ่งปันที่เก็บของเรา หากคุณรู้สึกใจดีการบริจาคเล็กน้อยผ่านผู้สนับสนุน GitHub จะได้รับการชื่นชมอย่างมากและไปไกลเพื่อสนับสนุนองค์กร
เรารู้สึกขอบคุณผู้สนับสนุนของเราอย่างมาก: Osmos สำหรับการสนับสนุนระดับทองและความไว้วางใจในเครื่องมือที่เราพัฒนา มหาสมุทรดิจิตอลเพื่อสนับสนุนเซิร์ฟเวอร์ของเรา และ Jetbrains เพื่อสนับสนุน IDE ของเรา
เพื่อนของ Ferris คนหนึ่ง Terres The Hermit Crab เป็นมาสคอตอย่างเป็นทางการของ Searorm งานอดิเรกของเขาคือการรวบรวมเปลือกหอย