Badr ORM is a standalone library that can be used in any .net project. Its main features are:
- map data tables to models (classes implementing Badr.Orm.Model)
- manipulate models in a simple, elegant and readable manner
- minimumize database hits
- seamless integration within any context
library(rClr)
setwd('F:/Projects/R/yaktyn/')
main.path <- 'F:/Projects/git/badr-project/test/Badr.Test/bin/Release/'
# dll.name <- paste0(main.path,'x86/SQLite.Interop.dll')
# clrLoadAssembly(dll.name)
dll.name <- paste0(main.path,'Badr.test.dll')
clrLoadAssembly(dll.name)
ormTest <- clrNew('Badr.Test.Orm.OrmTest')
for(int i = 0; i <10;i++){
dynamic newMember = new Member();
newMember.Role = "role" + i;
newMember.Rate = i *100;
newMember.Save(); // newMember.Id is updated from database (last_insert_id)
}
set.seed(1)
members = data.frame(Role=paste('role',1:10),
Rate = sample(1:100,10),stringsAsFactors=FALSE)
res <- apply(members,1,function(mem){
newMember = clrNew('Badr.Test.TestApp.Models.Member')
clrSet(newMember,"Role",mem['Role'])
clrSet(newMember,"Rate",as.integer(mem['Rate']))
clrCall(newMember,"Save")
})
library(RSQLite)
drv <- dbDriver("SQLite")
con <- dbConnect(drv, dbname = 'Orm/badr_orm_test.db')
dat <- dbReadTable(con,name='member')
library(xtable)
print(xtable(head(dat)), type = "html")